Shyim
7 years ago
commit
6e17bdfb16
176 changed files with 38486 additions and 0 deletions
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
# This file is a "template" of which env vars need to be defined for your application |
||||
# Copy this file to .env file for development, create environment variables when deploying to production |
||||
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration |
||||
|
||||
###> symfony/framework-bundle ### |
||||
APP_ENV=dev |
||||
APP_SECRET=7b95b76ffab0932d7a1753c0475e61bf |
||||
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2 |
||||
#TRUSTED_HOSTS=localhost,example.com |
||||
###< symfony/framework-bundle ### |
||||
|
||||
###> symfony/swiftmailer-bundle ### |
||||
# For Gmail as a transport, use: "gmail://username:password@localhost" |
||||
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" |
||||
# Delivery is disabled by default via "null://localhost" |
||||
MAILER_URL=null://localhost |
||||
###< symfony/swiftmailer-bundle ### |
||||
|
||||
###> doctrine/doctrine-bundle ### |
||||
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url |
||||
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db" |
||||
# Configure your db driver and server_version in config/packages/doctrine.yaml |
||||
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name |
||||
###< doctrine/doctrine-bundle ### |
||||
|
||||
###> lexik/jwt-authentication-bundle ### |
||||
# Key paths should be relative to the project directory |
||||
JWT_PRIVATE_KEY_PATH=config/jwt/private.pem |
||||
JWT_PUBLIC_KEY_PATH=config/jwt/public.pem |
||||
JWT_PASSPHRASE=a758fddfbc878122f8b37259b8ea14c3 |
||||
###< lexik/jwt-authentication-bundle ### |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
|
||||
###> symfony/framework-bundle ### |
||||
/.env |
||||
/public/bundles/ |
||||
/var/ |
||||
/vendor/ |
||||
###< symfony/framework-bundle ### |
||||
|
||||
###> symfony/webpack-encore-pack ### |
||||
/node_modules/ |
||||
/public/build/ |
||||
npm-debug.log |
||||
yarn-error.log |
||||
###< symfony/webpack-encore-pack ### |
||||
|
||||
###> symfony/phpunit-bridge ### |
||||
.phpunit |
||||
/phpunit.xml |
||||
###< symfony/phpunit-bridge ### |
||||
|
||||
###> symfony/web-server-bundle ### |
||||
/.web-server-pid |
||||
###< symfony/web-server-bundle ### |
||||
|
||||
.idea |
||||
/config/jwt |
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env php |
||||
<?php |
||||
|
||||
use App\Kernel; |
||||
use Symfony\Bundle\FrameworkBundle\Console\Application; |
||||
use Symfony\Component\Console\Input\ArgvInput; |
||||
use Symfony\Component\Debug\Debug; |
||||
use Symfony\Component\Dotenv\Dotenv; |
||||
|
||||
set_time_limit(0); |
||||
|
||||
require __DIR__.'/../vendor/autoload.php'; |
||||
|
||||
if (!class_exists(Application::class)) { |
||||
throw new \RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.'); |
||||
} |
||||
|
||||
if (!isset($_SERVER['APP_ENV'])) { |
||||
if (!class_exists(Dotenv::class)) { |
||||
throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.'); |
||||
} |
||||
(new Dotenv())->load(__DIR__.'/../.env'); |
||||
} |
||||
|
||||
$input = new ArgvInput(); |
||||
$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true); |
||||
$debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption('--no-debug', true); |
||||
|
||||
if ($debug) { |
||||
umask(0000); |
||||
|
||||
if (class_exists(Debug::class)) { |
||||
Debug::enable(); |
||||
} |
||||
} |
||||
|
||||
$kernel = new Kernel($env, $debug); |
||||
$application = new Application($kernel); |
||||
$application->run($input); |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env php |
||||
<?php |
||||
|
||||
if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) { |
||||
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n"; |
||||
exit(1); |
||||
} |
||||
if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) { |
||||
putenv('SYMFONY_PHPUNIT_REMOVE=symfony/yaml'); |
||||
} |
||||
if (false === getenv('SYMFONY_PHPUNIT_VERSION')) { |
||||
putenv('SYMFONY_PHPUNIT_VERSION=6.5'); |
||||
} |
||||
if (false === getenv('SYMFONY_PHPUNIT_DIR')) { |
||||
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); |
||||
} |
||||
|
||||
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit'; |
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
{ |
||||
"type": "project", |
||||
"license": "proprietary", |
||||
"require": { |
||||
"php": "^7.1.3", |
||||
"ext-iconv": "*", |
||||
"lexik/jwt-authentication-bundle": "^2.4", |
||||
"sensio/framework-extra-bundle": "^5.1", |
||||
"symfony/asset": "^4.0", |
||||
"symfony/console": "^4.0", |
||||
"symfony/expression-language": "^4.0", |
||||
"symfony/flex": "^1.0", |
||||
"symfony/form": "^4.0", |
||||
"symfony/framework-bundle": "^4.0", |
||||
"symfony/lts": "^4@dev", |
||||
"symfony/monolog-bundle": "^3.1", |
||||
"symfony/orm-pack": "*", |
||||
"symfony/process": "^4.0", |
||||
"symfony/security-bundle": "^4.0", |
||||
"symfony/serializer-pack": "*", |
||||
"symfony/swiftmailer-bundle": "^3.1", |
||||
"symfony/twig-bundle": "^4.0", |
||||
"symfony/validator": "^4.0", |
||||
"symfony/web-link": "^4.0", |
||||
"symfony/webpack-encore-pack": "*", |
||||
"symfony/yaml": "^4.0" |
||||
}, |
||||
"require-dev": { |
||||
"symfony/browser-kit": "^4.0", |
||||
"symfony/css-selector": "^4.0", |
||||
"symfony/debug-pack": "*", |
||||
"symfony/dotenv": "^4.0", |
||||
"symfony/maker-bundle": "^1.0", |
||||
"symfony/phpunit-bridge": "^4.0", |
||||
"symfony/profiler-pack": "*", |
||||
"symfony/web-server-bundle": "^4.0" |
||||
}, |
||||
"config": { |
||||
"preferred-install": { |
||||
"*": "dist" |
||||
}, |
||||
"sort-packages": true |
||||
}, |
||||
"autoload": { |
||||
"psr-4": { |
||||
"App\\": "src/" |
||||
} |
||||
}, |
||||
"autoload-dev": { |
||||
"psr-4": { |
||||
"App\\Tests\\": "tests/" |
||||
} |
||||
}, |
||||
"replace": { |
||||
"symfony/polyfill-iconv": "*", |
||||
"symfony/polyfill-php71": "*", |
||||
"symfony/polyfill-php70": "*", |
||||
"symfony/polyfill-php56": "*" |
||||
}, |
||||
"scripts": { |
||||
"auto-scripts": { |
||||
"cache:clear": "symfony-cmd", |
||||
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd" |
||||
}, |
||||
"post-install-cmd": [ |
||||
"@auto-scripts" |
||||
], |
||||
"post-update-cmd": [ |
||||
"@auto-scripts" |
||||
] |
||||
}, |
||||
"conflict": { |
||||
"symfony/symfony": "*" |
||||
}, |
||||
"extra": { |
||||
"symfony": { |
||||
"id": "01CBSMXHM5DKB6TZ52002ZR497", |
||||
"allow-contrib": false |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
<?php |
||||
|
||||
return [ |
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], |
||||
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], |
||||
Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], |
||||
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], |
||||
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], |
||||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], |
||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], |
||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], |
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], |
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], |
||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], |
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], |
||||
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], |
||||
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true], |
||||
]; |
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
services: |
||||
EasyCorp\EasyLog\EasyLogHandler: |
||||
public: false |
||||
arguments: ['%kernel.logs_dir%/%kernel.environment%.log'] |
||||
|
||||
#// FIXME: How to add this configuration automatically without messing up with the monolog configuration? |
||||
#monolog: |
||||
# handlers: |
||||
# buffered: |
||||
# type: buffer |
||||
# handler: easylog |
||||
# channels: ['!event'] |
||||
# level: debug |
||||
# easylog: |
||||
# type: service |
||||
# id: EasyCorp\EasyLog\EasyLogHandler |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
monolog: |
||||
handlers: |
||||
main: |
||||
type: stream |
||||
path: "%kernel.logs_dir%/%kernel.environment%.log" |
||||
level: debug |
||||
channels: ["!event"] |
||||
# uncomment to get logging in your browser |
||||
# you may have to allow bigger header sizes in your Web server configuration |
||||
#firephp: |
||||
# type: firephp |
||||
# level: info |
||||
#chromephp: |
||||
# type: chromephp |
||||
# level: info |
||||
console: |
||||
type: console |
||||
process_psr_3_messages: false |
||||
channels: ["!event", "!doctrine", "!console"] |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
framework: |
||||
router: |
||||
strict_requirements: true |
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
# See https://symfony.com/doc/current/email/dev_environment.html |
||||
swiftmailer: |
||||
# send all emails to a specific address |
||||
#delivery_addresses: ['me@example.com'] |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
web_profiler: |
||||
toolbar: true |
||||
intercept_redirects: false |
||||
|
||||
framework: |
||||
profiler: { only_exceptions: false } |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
parameters: |
||||
# Adds a fallback DATABASE_URL if the env var is not set. |
||||
# This allows you to run cache:warmup even if your |
||||
# environment variables are not available yet. |
||||
# You should not need to change this value. |
||||
env(DATABASE_URL): '' |
||||
|
||||
doctrine: |
||||
dbal: |
||||
# configure these for your database server |
||||
driver: 'pdo_mysql' |
||||
server_version: '5.7' |
||||
charset: utf8mb4 |
||||
default_table_options: |
||||
charset: utf8mb4 |
||||
collate: utf8mb4_unicode_ci |
||||
|
||||
url: '%env(resolve:DATABASE_URL)%' |
||||
orm: |
||||
auto_generate_proxy_classes: '%kernel.debug%' |
||||
naming_strategy: doctrine.orm.naming_strategy.underscore |
||||
auto_mapping: true |
||||
mappings: |
||||
App: |
||||
is_bundle: false |
||||
type: annotation |
||||
dir: '%kernel.project_dir%/src/Entity' |
||||
prefix: 'App\Entity' |
||||
alias: App |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
doctrine_migrations: |
||||
dir_name: '%kernel.project_dir%/src/Migrations' |
||||
# namespace is arbitrary but should be different from App\Migrations |
||||
# as migrations classes should NOT be autoloaded |
||||
namespace: DoctrineMigrations |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
framework: |
||||
secret: '%env(APP_SECRET)%' |
||||
#default_locale: en |
||||
#csrf_protection: true |
||||
#http_method_override: true |
||||
|
||||
# Enables session support. Note that the session will ONLY be started if you read or write from it. |
||||
# Remove or comment this section to explicitly disable session support. |
||||
session: |
||||
handler_id: ~ |
||||
|
||||
#esi: true |
||||
#fragments: true |
||||
php_errors: |
||||
log: true |
||||
|
||||
cache: |
||||
# Put the unique name of your app here: the prefix seed |
||||
# is used to compute stable namespaces for cache keys. |
||||
#prefix_seed: your_vendor_name/app_name |
||||
|
||||
# The app cache caches to the filesystem by default. |
||||
# Other options include: |
||||
|
||||
# Redis |
||||
#app: cache.adapter.redis |
||||
#default_redis_provider: redis://localhost |
||||
|
||||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) |
||||
#app: cache.adapter.apcu |
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
lexik_jwt_authentication: |
||||
private_key_path: '%kernel.project_dir%/%env(JWT_PRIVATE_KEY_PATH)%' |
||||
public_key_path: '%kernel.project_dir%/%env(JWT_PUBLIC_KEY_PATH)%' |
||||
pass_phrase: '%env(JWT_PASSPHRASE)%' |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
doctrine: |
||||
orm: |
||||
metadata_cache_driver: |
||||
type: service |
||||
id: doctrine.system_cache_provider |
||||
query_cache_driver: |
||||
type: service |
||||
id: doctrine.system_cache_provider |
||||
result_cache_driver: |
||||
type: service |
||||
id: doctrine.result_cache_provider |
||||
|
||||
services: |
||||
doctrine.result_cache_provider: |
||||
class: Symfony\Component\Cache\DoctrineProvider |
||||
public: false |
||||
arguments: |
||||
- '@doctrine.result_cache_pool' |
||||
doctrine.system_cache_provider: |
||||
class: Symfony\Component\Cache\DoctrineProvider |
||||
public: false |
||||
arguments: |
||||
- '@doctrine.system_cache_pool' |
||||
|
||||
framework: |
||||
cache: |
||||
pools: |
||||
doctrine.result_cache_pool: |
||||
adapter: cache.app |
||||
doctrine.system_cache_pool: |
||||
adapter: cache.system |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
monolog: |
||||
handlers: |
||||
main: |
||||
type: fingers_crossed |
||||
action_level: error |
||||
handler: nested |
||||
excluded_404s: |
||||
# regex: exclude all 404 errors from the logs |
||||
- ^/ |
||||
nested: |
||||
type: stream |
||||
path: "%kernel.logs_dir%/%kernel.environment%.log" |
||||
level: debug |
||||
console: |
||||
type: console |
||||
process_psr_3_messages: false |
||||
channels: ["!event", "!doctrine"] |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
framework: |
||||
router: |
||||
strict_requirements: ~ |
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
security: |
||||
providers: |
||||
user_db: |
||||
entity: { class: App\Entity\User, property: username } |
||||
firewalls: |
||||
login: |
||||
pattern: ^/api/auth/login |
||||
stateless: true |
||||
anonymous: true |
||||
form_login: |
||||
check_path: /api/auth/login |
||||
success_handler: lexik_jwt_authentication.handler.authentication_success |
||||
failure_handler: lexik_jwt_authentication.handler.authentication_failure |
||||
require_previous_session: false |
||||
|
||||
api: |
||||
pattern: ^/api |
||||
stateless: true |
||||
guard: |
||||
authenticators: |
||||
- lexik_jwt_authentication.jwt_token_authenticator |
||||
|
||||
dev: |
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/ |
||||
security: false |
||||
main: |
||||
anonymous: true |
||||
form_login: |
||||
login_path: login |
||||
check_path: login |
||||
|
||||
access_control: |
||||
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } |
||||
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY } |
||||
encoders: |
||||
App\Entity\User: plaintext |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
swiftmailer: |
||||
url: '%env(MAILER_URL)%' |
||||
spool: { type: 'memory' } |
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
framework: |
||||
test: true |
||||
session: |
||||
storage_id: session.storage.mock_file |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
monolog: |
||||
handlers: |
||||
main: |
||||
type: stream |
||||
path: "%kernel.logs_dir%/%kernel.environment%.log" |
||||
level: debug |
||||
channels: ["!event"] |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
swiftmailer: |
||||
disable_delivery: true |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
web_profiler: |
||||
toolbar: false |
||||
intercept_redirects: false |
||||
|
||||
framework: |
||||
profiler: { collect: false } |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
framework: |
||||
default_locale: '%locale%' |
||||
translator: |
||||
paths: |
||||
- '%kernel.project_dir%/translations' |
||||
fallbacks: |
||||
- '%locale%' |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
twig: |
||||
paths: ['%kernel.project_dir%/templates'] |
||||
debug: '%kernel.debug%' |
||||
strict_variables: '%kernel.debug%' |
||||
form_themes: ['bootstrap_3_layout.html.twig'] |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
#index: |
||||
# path: / |
||||
# controller: App\Controller\DefaultController::index |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
controllers: |
||||
resource: ../../src/Controller/ |
||||
type: annotation |
||||
|
||||
api_login_check: |
||||
path: /api/auth/login |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
_errors: |
||||
resource: '@TwigBundle/Resources/config/routing/errors.xml' |
||||
prefix: /_error |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
web_profiler_wdt: |
||||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' |
||||
prefix: /_wdt |
||||
|
||||
web_profiler_profiler: |
||||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' |
||||
prefix: /_profiler |
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
# Put parameters here that don't need to change on each machine where the app is deployed |
||||
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration |
||||
parameters: |
||||
locale: 'en' |
||||
appHost: '%env(APP_HOST)%' |
||||
nginxFolder: '%env(NGINX_CONFIG_DIR)%' |
||||
|
||||
services: |
||||
# default configuration for services in *this* file |
||||
_defaults: |
||||
autowire: true # Automatically injects dependencies in your services. |
||||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. |
||||
public: false # Allows optimizing the container by removing unused services; this also means |
||||
# fetching services directly from the container via $container->get() won't work. |
||||
# The best practice is to be explicit about your dependencies anyway. |
||||
|
||||
# makes classes in src/ available to be used as services |
||||
# this creates a service per class whose id is the fully-qualified class name |
||||
App\: |
||||
resource: '../src/*' |
||||
exclude: '../src/{Entity,Migrations,Tests,Kernel.php}' |
||||
|
||||
# controllers are imported separately to make sure services can be injected |
||||
# as action arguments even if you don't extend any base controller class |
||||
App\Controller\: |
||||
resource: '../src/Controller' |
||||
tags: ['controller.service_arguments'] |
||||
|
||||
App\Component\Services\: |
||||
resource: '../src/Component/Services' |
||||
tags: ['recast.service'] |
||||
|
||||
App\Component\ServiceManager: |
||||
class: App\Component\ServiceManager |
||||
arguments: [!tagged recast.service] |
||||
|
||||
App\Component\NginxConfigGenerator: |
||||
class: App\Component\NginxConfigGenerator |
||||
autowire: true |
||||
bind: |
||||
$nginxFolder: '%nginxFolder%' |
||||
$appHost: '%appHost%' |
||||
|
||||
# add more service definitions when explicit configuration is needed |
||||
# please note that last definitions always *replace* previous ones |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
services: |
||||
_defaults: |
||||
public: true |
||||
|
||||
# If you need to access services in a test, create an alias |
||||
# and then fetch that alias from the container. As a convention, |
||||
# aliases are prefixed with test. For example: |
||||
# |
||||
# test.App\Service\MyService: '@App\Service\MyService' |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
||||
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html --> |
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.1/phpunit.xsd" |
||||
backupGlobals="false" |
||||
colors="true" |
||||
bootstrap="vendor/autoload.php" |
||||
> |
||||
<php> |
||||
<ini name="error_reporting" value="-1" /> |
||||
<env name="KERNEL_CLASS" value="App\Kernel" /> |
||||
<env name="APP_ENV" value="test" /> |
||||
<env name="APP_DEBUG" value="1" /> |
||||
<env name="APP_SECRET" value="s$cretf0rt3st" /> |
||||
<env name="SHELL_VERBOSITY" value="-1" /> |
||||
<!-- define your env variables for the test env here --> |
||||
</php> |
||||
|
||||
<testsuites> |
||||
<testsuite name="Project Test Suite"> |
||||
<directory>tests/</directory> |
||||
</testsuite> |
||||
</testsuites> |
||||
|
||||
<filter> |
||||
<whitelist> |
||||
<directory>./src/</directory> |
||||
</whitelist> |
||||
</filter> |
||||
|
||||
<listeners> |
||||
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" /> |
||||
</listeners> |
||||
</phpunit> |
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
<?php |
||||
|
||||
use App\Kernel; |
||||
use Symfony\Component\Debug\Debug; |
||||
use Symfony\Component\Dotenv\Dotenv; |
||||
use Symfony\Component\HttpFoundation\Request; |
||||
|
||||
require __DIR__.'/../vendor/autoload.php'; |
||||
|
||||
// The check is to ensure we don't use .env in production |
||||
if (!isset($_SERVER['APP_ENV'])) { |
||||
if (!class_exists(Dotenv::class)) { |
||||
throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.'); |
||||
} |
||||
(new Dotenv())->load(__DIR__.'/../.env'); |
||||
} |
||||
|
||||
$env = $_SERVER['APP_ENV'] ?? 'dev'; |
||||
$debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)); |
||||
|
||||
if ($debug) { |
||||
umask(0000); |
||||
|
||||
Debug::enable(); |
||||
} |
||||
|
||||
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { |
||||
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); |
||||
} |
||||
|
||||
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { |
||||
Request::setTrustedHosts(explode(',', $trustedHosts)); |
||||
} |
||||
|
||||
$kernel = new Kernel($env, $debug); |
||||
$request = Request::createFromGlobals(); |
||||
$response = $kernel->handle($request); |
||||
$response->send(); |
||||
$kernel->terminate($request, $response); |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
{ |
||||
"presets": [ |
||||
["env", { |
||||
"modules": false, |
||||
"targets": { |
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"] |
||||
} |
||||
}], |
||||
"stage-2" |
||||
], |
||||
"plugins": ["transform-runtime"], |
||||
"env": { |
||||
"test": { |
||||
"presets": ["env", "stage-2"], |
||||
"plugins": ["istanbul"] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
root = true |
||||
|
||||
[*] |
||||
charset = utf-8 |
||||
indent_style = space |
||||
indent_size = 2 |
||||
end_of_line = lf |
||||
insert_final_newline = true |
||||
trim_trailing_whitespace = true |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
build/*.js |
||||
config/*.js |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
// http://eslint.org/docs/user-guide/configuring
|
||||
|
||||
module.exports = { |
||||
root: true, |
||||
parser: 'babel-eslint', |
||||
parserOptions: { |
||||
sourceType: 'module' |
||||
}, |
||||
env: { |
||||
browser: true, |
||||
}, |
||||
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
|
||||
extends: 'standard', |
||||
// required to lint *.vue files
|
||||
plugins: [ |
||||
'html' |
||||
], |
||||
// add your custom rules here
|
||||
'rules': { |
||||
// allow paren-less arrow functions
|
||||
'arrow-parens': 0, |
||||
// allow async-await
|
||||
'generator-star-spacing': 0, |
||||
// allow debugger during development
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 |
||||
} |
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
.DS_Store |
||||
node_modules/ |
||||
dist/ |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
test/unit/coverage |
||||
|
||||
# Editor directories and files |
||||
.idea |
||||
*.suo |
||||
*.ntvs* |
||||
*.njsproj |
||||
*.sln |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
|
||||
module.exports = { |
||||
"plugins": { |
||||
// to edit target browsers: use "browserslist" field in package.json
|
||||
"autoprefixer": {} |
||||
} |
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
MIT License |
||||
|
||||
Copyright (c) 2017 Cristi Jora |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
# [Vue Light Bootstrap Dashboard](http://vuejs.creative-tim.com/vue-light-bootstrap-dashboard) [![version][version-badge]][CHANGELOG] [![license][license-badge]][LICENSE] |
||||
|
||||
> Admin dashboard based on light bootstrap dashboard UI template + vue-router |
||||
|
||||
This project is a vue version of [Light bootstrap dashboard](https://www.creative-tim.com/product/light-bootstrap-dashboard) |
||||
designed for vue js. The dashboard includes Bootstrap 4, vue-router, chartist, google-maps and several other plugins/components. |
||||
|
||||
Check the [Live Demo here](http://vuejs.creative-tim.com/vue-light-bootstrap-dashboard). |
||||
|
||||
![](static/Dashboard.PNG) |
||||
## :rocket: Getting started |
||||
|
||||
Vue Light Bootstrap Dashboard is built on top of Bootstrap 4, Vuejs and Vue-router. To get started do the following steps: |
||||
1. Download the project |
||||
2. Make sure you have node.js (https://nodejs.org/en/) installed |
||||
3. Type `npm install` in the source folder where `package.json` is located |
||||
4. Type `npm run dev` to start the development server |
||||
|
||||
The repo uses [vue-cli](https://github.com/vuejs/vue-cli) scaffolding which takes care of the development setup with webpack and all the necessary modern tools to make web development faster and easier. |
||||
|
||||
## [Documentation](https://cristijora.github.io/vue-light-bootstrap-dashboard/documentation/#/buttons) |
||||
|
||||
## :cloud: Build Setup |
||||
|
||||
### install dependencies |
||||
`npm install` |
||||
### serve with hot reload at localhost:8000 |
||||
`npm run dev` |
||||
### build for production with minification |
||||
`npm run build` |
||||
### run unit tests |
||||
`npm run unit` |
||||
### run and watch unit tests |
||||
`npm run unit:watch` |
||||
|
||||
## :clipboard: Contribution guide |
||||
* `npm install` or `yarn install` |
||||
* Please don't use jQuery or jQuery based plugins since there are many pure Vue alternatives |
||||
|
||||
For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). |
||||
|
||||
[CHANGELOG]: ./CHANGELOG.md |
||||
[LICENSE]: ./LICENSE.md |
||||
[version-badge]: https://img.shields.io/badge/version-1.0.0-blue.svg |
||||
[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
require('./check-versions')() |
||||
|
||||
process.env.NODE_ENV = 'production' |
||||
|
||||
var ora = require('ora') |
||||
var rm = require('rimraf') |
||||
var path = require('path') |
||||
var chalk = require('chalk') |
||||
var webpack = require('webpack') |
||||
var config = require('../config') |
||||
var webpackConfig = require('./webpack.prod.conf') |
||||
|
||||
var spinner = ora('building for production...') |
||||
spinner.start() |
||||
|
||||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { |
||||
if (err) throw err |
||||
webpack(webpackConfig, function (err, stats) { |
||||
spinner.stop() |
||||
if (err) throw err |
||||
process.stdout.write(stats.toString({ |
||||
colors: true, |
||||
modules: false, |
||||
children: false, |
||||
chunks: false, |
||||
chunkModules: false |
||||
}) + '\n\n') |
||||
|
||||
if (stats.hasErrors()) { |
||||
console.log(chalk.red(' Build failed with errors.\n')) |
||||
process.exit(1) |
||||
} |
||||
|
||||
console.log(chalk.cyan(' Build complete.\n')) |
||||
console.log(chalk.yellow( |
||||
' Tip: built files are meant to be served over an HTTP server.\n' + |
||||
' Opening index.html over file:// won\'t work.\n' |
||||
)) |
||||
}) |
||||
}) |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
var chalk = require('chalk') |
||||
var semver = require('semver') |
||||
var packageConfig = require('../package.json') |
||||
var shell = require('shelljs') |
||||
function exec (cmd) { |
||||
return require('child_process').execSync(cmd).toString().trim() |
||||
} |
||||
|
||||
var versionRequirements = [ |
||||
{ |
||||
name: 'node', |
||||
currentVersion: semver.clean(process.version), |
||||
versionRequirement: packageConfig.engines.node |
||||
} |
||||
] |
||||
|
||||
if (shell.which('npm')) { |
||||
versionRequirements.push({ |
||||
name: 'npm', |
||||
currentVersion: exec('npm --version'), |
||||
versionRequirement: packageConfig.engines.npm |
||||
}) |
||||
} |
||||
|
||||
module.exports = function () { |
||||
var warnings = [] |
||||
for (var i = 0; i < versionRequirements.length; i++) { |
||||
var mod = versionRequirements[i] |
||||
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { |
||||
warnings.push(mod.name + ': ' + |
||||
chalk.red(mod.currentVersion) + ' should be ' + |
||||
chalk.green(mod.versionRequirement) |
||||
) |
||||
} |
||||
} |
||||
|
||||
if (warnings.length) { |
||||
console.log('') |
||||
console.log(chalk.yellow('To use this template, you must update following to modules:')) |
||||
console.log() |
||||
for (var i = 0; i < warnings.length; i++) { |
||||
var warning = warnings[i] |
||||
console.log(' ' + warning) |
||||
} |
||||
console.log() |
||||
process.exit(1) |
||||
} |
||||
} |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
/* eslint-disable */ |
||||
require('eventsource-polyfill') |
||||
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') |
||||
|
||||
hotClient.subscribe(function (event) { |
||||
if (event.action === 'reload') { |
||||
window.location.reload() |
||||
} |
||||
}) |
@ -0,0 +1,92 @@
@@ -0,0 +1,92 @@
|
||||
require('./check-versions')() |
||||
|
||||
var config = require('../config') |
||||
if (!process.env.NODE_ENV) { |
||||
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) |
||||
} |
||||
|
||||
var opn = require('opn') |
||||
var path = require('path') |
||||
var express = require('express') |
||||
var webpack = require('webpack') |
||||
var proxyMiddleware = require('http-proxy-middleware') |
||||
var webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production') |
||||
? require('./webpack.prod.conf') |
||||
: require('./webpack.dev.conf') |
||||
|
||||
// default port where dev server listens for incoming traffic
|
||||
var port = process.env.PORT || config.dev.port |
||||
// automatically open browser, if not set will be false
|
||||
var autoOpenBrowser = !!config.dev.autoOpenBrowser |
||||
// Define HTTP proxies to your custom API backend
|
||||
// https://github.com/chimurai/http-proxy-middleware
|
||||
var proxyTable = config.dev.proxyTable |
||||
|
||||
var app = express() |
||||
var compiler = webpack(webpackConfig) |
||||
|
||||
var devMiddleware = require('webpack-dev-middleware')(compiler, { |
||||
publicPath: webpackConfig.output.publicPath, |
||||
quiet: true |
||||
}) |
||||
|
||||
var hotMiddleware = require('webpack-hot-middleware')(compiler, { |
||||
log: false, |
||||
heartbeat: 2000 |
||||
}) |
||||
// force page reload when html-webpack-plugin template changes
|
||||
compiler.plugin('compilation', function (compilation) { |
||||
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { |
||||
hotMiddleware.publish({ action: 'reload' }) |
||||
cb() |
||||
}) |
||||
}) |
||||
|
||||
// proxy api requests
|
||||
Object.keys(proxyTable).forEach(function (context) { |
||||
var options = proxyTable[context] |
||||
if (typeof options === 'string') { |
||||
options = { target: options } |
||||
} |
||||
app.use(proxyMiddleware(options.filter || context, options)) |
||||
}) |
||||
|
||||
// handle fallback for HTML5 history API
|
||||
app.use(require('connect-history-api-fallback')()) |
||||
|
||||
// serve webpack bundle output
|
||||
app.use(devMiddleware) |
||||
|
||||
// enable hot-reload and state-preserving
|
||||
// compilation error display
|
||||
app.use(hotMiddleware) |
||||
|
||||
// serve pure static assets
|
||||
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) |
||||
app.use(staticPath, express.static('./static')) |
||||
|
||||
var uri = 'http://localhost:' + port |
||||
|
||||
var _resolve |
||||
var readyPromise = new Promise(resolve => { |
||||
_resolve = resolve |
||||
}) |
||||
|
||||
console.log('> Starting dev server...') |
||||
devMiddleware.waitUntilValid(() => { |
||||
console.log('> Listening at ' + uri + '\n') |
||||
// when env is testing, don't need open it
|
||||
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { |
||||
opn(uri) |
||||
} |
||||
_resolve() |
||||
}) |
||||
|
||||
var server = app.listen(port) |
||||
|
||||
module.exports = { |
||||
ready: readyPromise, |
||||
close: () => { |
||||
server.close() |
||||
} |
||||
} |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
var path = require('path') |
||||
var config = require('../config') |
||||
var ExtractTextPlugin = require('extract-text-webpack-plugin') |
||||
|
||||
exports.assetsPath = function (_path) { |
||||
var assetsSubDirectory = process.env.NODE_ENV === 'production' |
||||
? config.build.assetsSubDirectory |
||||
: config.dev.assetsSubDirectory |
||||
return path.posix.join(assetsSubDirectory, _path) |
||||
} |
||||
|
||||
exports.cssLoaders = function (options) { |
||||
options = options || {} |
||||
|
||||
var cssLoader = { |
||||
loader: 'css-loader', |
||||
options: { |
||||
minimize: process.env.NODE_ENV === 'production', |
||||
sourceMap: options.sourceMap |
||||
} |
||||
} |
||||
|
||||
// generate loader string to be used with extract text plugin
|
||||
function generateLoaders (loader, loaderOptions) { |
||||
var loaders = [cssLoader] |
||||
if (loader) { |
||||
loaders.push({ |
||||
loader: loader + '-loader', |
||||
options: Object.assign({}, loaderOptions, { |
||||
sourceMap: options.sourceMap |
||||
}) |
||||
}) |
||||
} |
||||
|
||||
// Extract CSS when that option is specified
|
||||
// (which is the case during production build)
|
||||
if (options.extract) { |
||||
return ExtractTextPlugin.extract({ |
||||
use: loaders, |
||||
fallback: 'vue-style-loader' |
||||
}) |
||||
} else { |
||||
return ['vue-style-loader'].concat(loaders) |
||||
} |
||||
} |
||||
|
||||
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
|
||||
return { |
||||
css: generateLoaders(), |
||||
postcss: generateLoaders(), |
||||
less: generateLoaders('less'), |
||||
sass: generateLoaders('sass', { indentedSyntax: true }), |
||||
scss: generateLoaders('sass'), |
||||
stylus: generateLoaders('stylus'), |
||||
styl: generateLoaders('stylus') |
||||
} |
||||
} |
||||
|
||||
// Generate loaders for standalone style files (outside of .vue)
|
||||
exports.styleLoaders = function (options) { |
||||
var output = [] |
||||
var loaders = exports.cssLoaders(options) |
||||
for (var extension in loaders) { |
||||
var loader = loaders[extension] |
||||
output.push({ |
||||
test: new RegExp('\\.' + extension + '$'), |
||||
use: loader |
||||
}) |
||||
} |
||||
return output |
||||
} |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
'use strict' |
||||
const utils = require('./utils') |
||||
const config = require('../config') |
||||
const isProduction = process.env.NODE_ENV === 'production' |
||||
|
||||
module.exports = { |
||||
loaders: utils.cssLoaders({ |
||||
sourceMap: isProduction |
||||
? config.build.productionSourceMap |
||||
: config.dev.cssSourceMap, |
||||
extract: isProduction |
||||
}), |
||||
transformToRequire: { |
||||
video: 'src', |
||||
source: 'src', |
||||
img: 'src', |
||||
image: 'xlink:href' |
||||
} |
||||
} |
@ -0,0 +1,74 @@
@@ -0,0 +1,74 @@
|
||||
var path = require('path') |
||||
var utils = require('./utils') |
||||
var config = require('../config') |
||||
var vueLoaderConfig = require('./vue-loader.conf') |
||||
|
||||
function resolve (dir) { |
||||
return path.join(__dirname, '..', dir) |
||||
} |
||||
|
||||
module.exports = { |
||||
entry: { |
||||
app: './src/main.js' |
||||
}, |
||||
output: { |
||||
path: config.build.assetsRoot, |
||||
filename: '[name].js', |
||||
publicPath: process.env.NODE_ENV === 'production' |
||||
? config.build.assetsPublicPath |
||||
: config.dev.assetsPublicPath |
||||
}, |
||||
resolve: { |
||||
extensions: ['.js', '.vue', '.json'], |
||||
alias: { |
||||
'vue$': 'vue/dist/vue.common.js', |
||||
'@': resolve('src'), |
||||
} |
||||
}, |
||||
module: { |
||||
rules: [ |
||||
{ |
||||
test: /\.vue$/, |
||||
loader: 'vue-loader', |
||||
options: vueLoaderConfig |
||||
}, |
||||
{ |
||||
test: /\.js$/, |
||||
loader: 'babel-loader', |
||||
include: [resolve('src'), resolve('test')] |
||||
}, |
||||
{ |
||||
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, |
||||
loader: 'url-loader', |
||||
options: { |
||||
limit: 10000, |
||||
name: utils.assetsPath('img/[name].[hash:7].[ext]') |
||||
} |
||||
}, |
||||
{ |
||||
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, |
||||
loader: 'url-loader', |
||||
options: { |
||||
limit: 10000, |
||||
name: utils.assetsPath('media/[name].[hash:7].[ext]') |
||||
} |
||||
}, |
||||
{ |
||||
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, |
||||
loader: 'url-loader', |
||||
options: { |
||||
limit: 10000, |
||||
name: utils.assetsPath('fonts/[name].[hash:7].[ext]') |
||||
} |
||||
} |
||||
] |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Vue Paper Dashboard PRO Custom configuration. Do not delete this once upgrading to a newer vue-cli version |
||||
*/ |
||||
|
||||
const merge = require('webpack-merge') |
||||
const customWebpackConfig = require('./webpack.custom') |
||||
module.exports = merge(customWebpackConfig, module.exports) |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
var path = require('path') |
||||
|
||||
function resolve (dir) { |
||||
return path.join(__dirname, '..', dir) |
||||
} |
||||
|
||||
var webpackConfig = { |
||||
resolve: { |
||||
alias: { |
||||
'src': resolve('src'), |
||||
'assets': resolve('src/assets'), |
||||
'components': resolve('src/components') |
||||
} |
||||
}, |
||||
module: { |
||||
rules: [] |
||||
} |
||||
} |
||||
|
||||
var esLintRule = { |
||||
test: /\.(js|vue)$/, |
||||
loader: 'eslint-loader', |
||||
enforce: 'pre', |
||||
include: [resolve('src'), resolve('test')], |
||||
options: { |
||||
formatter: require('eslint-friendly-formatter') |
||||
} |
||||
} |
||||
|
||||
if(process.env.ENABLE_ESLINT && process.env.ENABLE_ESLINT === 'true'){ |
||||
webpackConfig.module.rules.unshift(esLintRule) //add eslint
|
||||
} |
||||
|
||||
module.exports = webpackConfig |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
var utils = require('./utils') |
||||
var webpack = require('webpack') |
||||
var config = require('../config') |
||||
var merge = require('webpack-merge') |
||||
var baseWebpackConfig = require('./webpack.base.conf') |
||||
var HtmlWebpackPlugin = require('html-webpack-plugin') |
||||
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') |
||||
|
||||
// add hot-reload related code to entry chunks
|
||||
Object.keys(baseWebpackConfig.entry).forEach(function (name) { |
||||
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) |
||||
}) |
||||
|
||||
module.exports = merge(baseWebpackConfig, { |
||||
module: { |
||||
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) |
||||
}, |
||||
// cheap-module-eval-source-map is faster for development
|
||||
devtool: '#cheap-module-eval-source-map', |
||||
plugins: [ |
||||
new webpack.DefinePlugin({ |
||||
'process.env': config.dev.env |
||||
}), |
||||
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage
|
||||
new webpack.HotModuleReplacementPlugin(), |
||||
new webpack.NoEmitOnErrorsPlugin(), |
||||
// https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({ |
||||
filename: 'index.html', |
||||
template: 'index.html', |
||||
inject: true |
||||
}), |
||||
new FriendlyErrorsPlugin() |
||||
] |
||||
}) |
@ -0,0 +1,126 @@
@@ -0,0 +1,126 @@
|
||||
var path = require('path') |
||||
var utils = require('./utils') |
||||
var webpack = require('webpack') |
||||
var config = require('../config') |
||||
var merge = require('webpack-merge') |
||||
var baseWebpackConfig = require('./webpack.base.conf') |
||||
var CopyWebpackPlugin = require('copy-webpack-plugin') |
||||
var HtmlWebpackPlugin = require('html-webpack-plugin') |
||||
var ExtractTextPlugin = require('extract-text-webpack-plugin') |
||||
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') |
||||
|
||||
var env = process.env.NODE_ENV === 'testing' |
||||
? require('../config/test.env') |
||||
: config.build.env |
||||
|
||||
var webpackConfig = merge(baseWebpackConfig, { |
||||
module: { |
||||
rules: utils.styleLoaders({ |
||||
sourceMap: config.build.productionSourceMap, |
||||
extract: true |
||||
}) |
||||
}, |
||||
devtool: config.build.productionSourceMap ? '#source-map' : false, |
||||
output: { |
||||
path: config.build.assetsRoot, |
||||
filename: utils.assetsPath('js/[name].[chunkhash].js'), |
||||
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') |
||||
}, |
||||
plugins: [ |
||||
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||
new webpack.DefinePlugin({ |
||||
'process.env': env |
||||
}), |
||||
new webpack.optimize.UglifyJsPlugin({ |
||||
compress: { |
||||
warnings: false |
||||
}, |
||||
sourceMap: true |
||||
}), |
||||
// extract css into its own file
|
||||
new ExtractTextPlugin({ |
||||
filename: utils.assetsPath('css/[name].[contenthash].css') |
||||
}), |
||||
// Compress extracted CSS. We are using this plugin so that possible
|
||||
// duplicated CSS from different components can be deduped.
|
||||
new OptimizeCSSPlugin({ |
||||
cssProcessorOptions: { |
||||
safe: true |
||||
} |
||||
}), |
||||
// generate dist index.html with correct asset hash for caching.
|
||||
// you can customize output by editing /index.html
|
||||
// see https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({ |
||||
filename: process.env.NODE_ENV === 'testing' |
||||
? 'index.html' |
||||
: config.build.index, |
||||
template: 'index.html', |
||||
inject: true, |
||||
minify: { |
||||
removeComments: true, |
||||
collapseWhitespace: true, |
||||
removeAttributeQuotes: true |
||||
// more options:
|
||||
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||
}, |
||||
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||
chunksSortMode: 'dependency' |
||||
}), |
||||
// keep module.id stable when vender modules does not change
|
||||
new webpack.HashedModuleIdsPlugin(), |
||||
// split vendor js into its own file
|
||||
new webpack.optimize.CommonsChunkPlugin({ |
||||
name: 'vendor', |
||||
minChunks: function (module, count) { |
||||
// any required modules inside node_modules are extracted to vendor
|
||||
return ( |
||||
module.resource && |
||||
/\.js$/.test(module.resource) && |
||||
module.resource.indexOf( |
||||
path.join(__dirname, '../node_modules') |
||||
) === 0 |
||||
) |
||||
} |
||||
}), |
||||
// extract webpack runtime and module manifest to its own file in order to
|
||||
// prevent vendor hash from being updated whenever app bundle is updated
|
||||
new webpack.optimize.CommonsChunkPlugin({ |
||||
name: 'manifest', |
||||
chunks: ['vendor'] |
||||
}), |
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([ |
||||
{ |
||||
from: path.resolve(__dirname, '../static'), |
||||
to: config.build.assetsSubDirectory, |
||||
ignore: ['.*'] |
||||
} |
||||
]) |
||||
] |
||||
}) |
||||
|
||||
if (config.build.productionGzip) { |
||||
var CompressionWebpackPlugin = require('compression-webpack-plugin') |
||||
|
||||
webpackConfig.plugins.push( |
||||
new CompressionWebpackPlugin({ |
||||
asset: '[path].gz[query]', |
||||
algorithm: 'gzip', |
||||
test: new RegExp( |
||||
'\\.(' + |
||||
config.build.productionGzipExtensions.join('|') + |
||||
')$' |
||||
), |
||||
threshold: 10240, |
||||
minRatio: 0.8 |
||||
}) |
||||
) |
||||
} |
||||
|
||||
if (config.build.bundleAnalyzerReport) { |
||||
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin |
||||
webpackConfig.plugins.push(new BundleAnalyzerPlugin()) |
||||
} |
||||
|
||||
module.exports = webpackConfig |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
'use strict' |
||||
// This is the webpack config used for unit tests.
|
||||
|
||||
const utils = require('./utils') |
||||
const webpack = require('webpack') |
||||
const merge = require('webpack-merge') |
||||
const baseWebpackConfig = require('./webpack.base.conf') |
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, { |
||||
// use inline sourcemap for karma-sourcemap-loader
|
||||
module: { |
||||
rules: utils.styleLoaders() |
||||
}, |
||||
devtool: '#inline-source-map', |
||||
resolveLoader: { |
||||
alias: { |
||||
// necessary to to make lang="scss" work in test when using vue-loader's ?inject option
|
||||
// see discussion at https://github.com/vuejs/vue-loader/issues/724
|
||||
'scss-loader': 'sass-loader' |
||||
} |
||||
}, |
||||
plugins: [ |
||||
new webpack.DefinePlugin({ |
||||
'process.env': require('../config/test.env') |
||||
}) |
||||
] |
||||
}) |
||||
|
||||
// no need for app entry during tests
|
||||
delete webpackConfig.entry |
||||
|
||||
module.exports = webpackConfig |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
var merge = require('webpack-merge') |
||||
var prodEnv = require('./prod.env') |
||||
|
||||
module.exports = merge(prodEnv, { |
||||
NODE_ENV: '"development"' |
||||
}) |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||
var path = require('path') |
||||
module.exports = { |
||||
build: { |
||||
env: require('./prod.env'), |
||||
index: path.resolve(__dirname, '../dist/index.html'), |
||||
assetsRoot: path.resolve(__dirname, '../dist'), |
||||
assetsSubDirectory: 'static', |
||||
assetsPublicPath: '', |
||||
productionSourceMap: false, |
||||
// Gzip off by default as many popular static hosts such as
|
||||
// Surge or Netlify already gzip all static assets for you.
|
||||
// Before setting to `true`, make sure to:
|
||||
// npm install --save-dev compression-webpack-plugin
|
||||
productionGzip: false, |
||||
productionGzipExtensions: ['js', 'css'], |
||||
// Run the build command with an extra argument to
|
||||
// View the bundle analyzer report after build finishes:
|
||||
// `npm run build --report`
|
||||
// Set to `true` or `false` to always turn it on or off
|
||||
bundleAnalyzerReport: process.env.npm_config_report |
||||
}, |
||||
dev: { |
||||
env: require('./dev.env'), |
||||
port: 8000, |
||||
autoOpenBrowser: true, |
||||
assetsSubDirectory: 'static', |
||||
assetsPublicPath: '/', |
||||
proxyTable: {}, |
||||
// CSS Sourcemaps off by default because relative paths are "buggy"
|
||||
// with this option, according to the CSS-Loader README
|
||||
// (https://github.com/webpack/css-loader#sourcemaps)
|
||||
// In our experience, they generally work as expected,
|
||||
// just be aware of this issue when enabling this option.
|
||||
cssSourceMap: false |
||||
} |
||||
} |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
module.exports = { |
||||
NODE_ENV: '"production"' |
||||
} |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
var merge = require('webpack-merge') |
||||
var devEnv = require('./dev.env') |
||||
|
||||
module.exports = merge(devEnv, { |
||||
NODE_ENV: '"testing"' |
||||
}) |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<link rel="icon" type="image/png" sizes="96x96" href="static/img/favicon.png"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> |
||||
<title>ReCast</title> |
||||
<!-- Bootstrap core CSS --> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
||||
|
||||
<!-- Fonts and icons --> |
||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> |
||||
<link href='https://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet' type='text/css'> |
||||
<link href="static/css/nucleo-icons.css" rel="stylesheet" /> |
||||
|
||||
</head> |
||||
<body> |
||||
<div id="app"></div> |
||||
<!-- built files will be auto injected --> |
||||
</body> |
||||
</html> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,105 @@
@@ -0,0 +1,105 @@
|
||||
{ |
||||
"name": "vue-light-bootstrap-dashboard", |
||||
"version": "1.0.0", |
||||
"description": "Vue light bootstrap dashboard", |
||||
"author": "cristijora <joracristi@gmail.com>", |
||||
"private": true, |
||||
"scripts": { |
||||
"dev": "node build/dev-server.js", |
||||
"start": "cross-env ENABLE_ESLINT=true node build/dev-server.js", |
||||
"build": "cross-env node build/build.js", |
||||
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", |
||||
"test": "npm run unit", |
||||
"lint": "eslint --ext .js,.vue src test/unit/specs" |
||||
}, |
||||
"dependencies": { |
||||
"@websanova/vue-auth": "^2.21.9-beta", |
||||
"axios": "^0.18.0", |
||||
"bootstrap": "^4.0.0-beta.2", |
||||
"chartist": "^0.11.0", |
||||
"es6-promise": "^4.1.1", |
||||
"google-maps": "^3.2.1", |
||||
"v-tooltip": "^2.0.0-rc.1", |
||||
"vue": "^2.5.2", |
||||
"vue-axios": "^2.1.1", |
||||
"vue-clickaway": "^2.1.0", |
||||
"vue-notifyjs": "^0.2.0", |
||||
"vue-router": "^3.0.1", |
||||
"vue2-google-maps": "^0.8.4" |
||||
}, |
||||
"devDependencies": { |
||||
"autoprefixer": "^7.1.2", |
||||
"babel-core": "^6.22.1", |
||||
"babel-eslint": "^7.1.1", |
||||
"babel-loader": "^7.1.1", |
||||
"babel-plugin-component": "^0.10.1", |
||||
"babel-plugin-istanbul": "^4.1.1", |
||||
"babel-plugin-transform-runtime": "^6.22.0", |
||||
"babel-preset-env": "^1.3.2", |
||||
"babel-preset-stage-2": "^6.22.0", |
||||
"babel-register": "^6.22.0", |
||||
"chai": "^3.5.0", |
||||
"chalk": "^2.0.1", |
||||
"connect-history-api-fallback": "^1.3.0", |
||||
"copy-webpack-plugin": "^4.0.1", |
||||
"cross-env": "^5.0.1", |
||||
"css-loader": "^0.28.0", |
||||
"cssnano": "^3.10.0", |
||||
"eslint": "^3.19.0", |
||||
"eslint-config-standard": "^6.2.1", |
||||
"eslint-friendly-formatter": "^3.0.0", |
||||
"eslint-loader": "^1.7.1", |
||||
"eslint-plugin-html": "^3.0.0", |
||||
"eslint-plugin-promise": "^3.4.0", |
||||
"eslint-plugin-standard": "^2.0.1", |
||||
"eventsource-polyfill": "^0.9.6", |
||||
"express": "^4.14.1", |
||||
"extract-text-webpack-plugin": "^2.0.0", |
||||
"file-loader": "^0.11.1", |
||||
"friendly-errors-webpack-plugin": "^1.1.3", |
||||
"function-bind": "^1.1.1", |
||||
"html-webpack-plugin": "^2.28.0", |
||||
"http-proxy-middleware": "^0.17.3", |
||||
"inject-loader": "^3.0.0", |
||||
"karma": "^1.4.1", |
||||
"karma-coverage": "^1.1.1", |
||||
"karma-mocha": "^1.3.0", |
||||
"karma-phantomjs-launcher": "^1.0.2", |
||||
"karma-phantomjs-shim": "^1.4.0", |
||||
"karma-sinon-chai": "^1.3.1", |
||||
"karma-sourcemap-loader": "^0.3.7", |
||||
"karma-spec-reporter": "0.0.31", |
||||
"karma-webpack": "^2.0.2", |
||||
"mocha": "^3.2.0", |
||||
"node-sass": "^4.5.3", |
||||
"opn": "^5.1.0", |
||||
"optimize-css-assets-webpack-plugin": "^2.0.0", |
||||
"ora": "^1.2.0", |
||||
"phantomjs-prebuilt": "^2.1.14", |
||||
"rimraf": "^2.6.0", |
||||
"sass-loader": "^6.0.6", |
||||
"semver": "^5.3.0", |
||||
"shelljs": "^0.7.6", |
||||
"sinon": "^2.1.0", |
||||
"sinon-chai": "^2.8.0", |
||||
"url-loader": "^0.5.8", |
||||
"vue-loader": "^13.0.4", |
||||
"vue-style-loader": "^3.0.1", |
||||
"vue-template-compiler": "^2.5.2", |
||||
"vue-test-utils": "^1.0.0-beta.3", |
||||
"webpack": "^2.6.1", |
||||
"webpack-bundle-analyzer": "^2.2.1", |
||||
"webpack-dev-middleware": "^1.10.0", |
||||
"webpack-hot-middleware": "^2.18.0", |
||||
"webpack-merge": "^4.1.0" |
||||
}, |
||||
"engines": { |
||||
"node": ">= 4.0.0", |
||||
"npm": ">= 3.0.0" |
||||
}, |
||||
"browserslist": [ |
||||
"> 1%", |
||||
"last 2 versions", |
||||
"not ie <= 8" |
||||
] |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
<template> |
||||
<div :class="{'nav-open': $sidebar.showSidebar}"> |
||||
<notifications></notifications> |
||||
<router-view></router-view> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default {} |
||||
</script> |
||||
<style lang="scss"> |
||||
.vue-notifyjs.notifications{ |
||||
.list-move { |
||||
transition: transform 0.3s, opacity 0.4s; |
||||
} |
||||
.list-item { |
||||
display: inline-block; |
||||
margin-right: 10px; |
||||
|
||||
} |
||||
.list-enter-active { |
||||
transition: transform 0.2s ease-in, opacity 0.4s ease-in; |
||||
} |
||||
.list-leave-active { |
||||
transition: transform 1s ease-out, opacity 0.4s ease-out; |
||||
} |
||||
|
||||
.list-enter { |
||||
opacity: 0; |
||||
transform: scale(1.1); |
||||
|
||||
} |
||||
.list-leave-to { |
||||
opacity: 0; |
||||
transform: scale(1.2, 0.7); |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,61 @@
@@ -0,0 +1,61 @@
|
||||
@media (min-width: 992px){ |
||||
.typo-line{ |
||||
padding-left: 140px; |
||||
margin-bottom: 40px; |
||||
position: relative; |
||||
} |
||||
|
||||
.typo-line .category{ |
||||
transform: translateY(-50%); |
||||
top: 50%; |
||||
left: 0px; |
||||
position: absolute; |
||||
} |
||||
} |
||||
|
||||
.all-icons [class*="pe-"]{ |
||||
font-size: 40px; |
||||
} |
||||
.all-icons input{ |
||||
border: 0; |
||||
} |
||||
.all-icons .font-icon-detail{ |
||||
text-align: center; |
||||
padding: 45px 0px 30px; |
||||
border: 1px solid #e5e5e5; |
||||
border-radius: 6px; |
||||
margin: 15px 0; |
||||
} |
||||
.all-icons .font-icon-detail input{ |
||||
margin: 25px auto 0; |
||||
width: 100%; |
||||
text-align: center; |
||||
display: block; |
||||
color: #aaa; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
#map{ |
||||
position:relative; |
||||
width:100%; |
||||
height: calc(100% - 60px); |
||||
} |
||||
|
||||
.places-buttons .btn{ |
||||
margin-bottom: 30px |
||||
} |
||||
.sidebar .nav > li.active-pro{ |
||||
position: absolute; |
||||
width: 100%; |
||||
bottom: 10px; |
||||
} |
||||
.sidebar .nav > li.active-pro a{ |
||||
background: rgba(255, 255, 255, 0.14); |
||||
opacity: 1; |
||||
color: #FFFFFF; |
||||
} |
||||
|
||||
.table-upgrade td:nth-child(2), |
||||
.table-upgrade td:nth-child(3){ |
||||
text-align: center; |
||||
} |
@ -0,0 +1,90 @@
@@ -0,0 +1,90 @@
|
||||
.alert{ |
||||
border: 0; |
||||
border-radius: 0; |
||||
color: #FFFFFF; |
||||
padding: 10px 15px; |
||||
font-size: 14px; |
||||
|
||||
.container &{ |
||||
border-radius: 4px; |
||||
|
||||
} |
||||
.navbar &{ |
||||
border-radius: 0; |
||||
left: 0; |
||||
position: absolute; |
||||
right: 0; |
||||
top: 85px; |
||||
width: 100%; |
||||
z-index: 3; |
||||
} |
||||
.navbar:not(.navbar-transparent) &{ |
||||
top: 70px; |
||||
} |
||||
|
||||
span[data-notify="icon"]{ |
||||
font-size: 30px; |
||||
display: block; |
||||
left: 15px; |
||||
position: absolute; |
||||
top: 50%; |
||||
margin-top: -15px; |
||||
} |
||||
|
||||
i.nc-simple-remove{ |
||||
font-size: 12px !important; |
||||
font: bold normal normal 14px/1 'nucleo-icons'; |
||||
} |
||||
|
||||
button.close{ |
||||
position: absolute; |
||||
right: 10px; |
||||
top: 50%; |
||||
margin-top: -13px; |
||||
z-index: 1; |
||||
background-color: #FFFFFF; |
||||
display: block; |
||||
border-radius: 50%; |
||||
opacity: .4; |
||||
line-height: 9px; |
||||
width: 25px; |
||||
height: 25px; |
||||
outline: 0 !important; |
||||
text-align: center; |
||||
padding: 3px; |
||||
font-weight: 300; |
||||
|
||||
&:hover{ |
||||
opacity: .55; |
||||
} |
||||
} |
||||
|
||||
.close ~ span{ |
||||
display: block; |
||||
max-width: 89%; |
||||
} |
||||
|
||||
&[data-notify="container"]{ |
||||
padding: 10px 10px 10px 20px; |
||||
border-radius: $border-radius-base; |
||||
} |
||||
|
||||
&.alert-with-icon{ |
||||
padding-left: 65px; |
||||
} |
||||
} |
||||
.alert-primary{ |
||||
background-color: $blue-navbar; |
||||
} |
||||
.alert-info{ |
||||
background-color: $azure-navbar; |
||||
} |
||||
.alert-success { |
||||
background-color: $green-navbar; |
||||
} |
||||
.alert-warning { |
||||
background-color: $orange-navbar; |
||||
} |
||||
.alert-danger { |
||||
background-color: $red-navbar; |
||||
} |
@ -0,0 +1,132 @@
@@ -0,0 +1,132 @@
|
||||
.btn{ |
||||
border-width: $border-thick; |
||||
background-color: $transparent-bg; |
||||
font-weight: $font-weight-normal; |
||||
|
||||
@include opacity(.8); |
||||
padding: $padding-base-vertical $padding-base-horizontal; |
||||
|
||||
@include btn-styles($default-color, $default-states-color); |
||||
|
||||
&:hover, |
||||
&:focus{ |
||||
@include opacity(1); |
||||
outline: 0 !important; |
||||
box-shadow: none; |
||||
} |
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle { |
||||
@include box-shadow(none); |
||||
outline: 0 !important; |
||||
} |
||||
|
||||
&.btn-icon{ |
||||
padding: $padding-base-vertical; |
||||
} |
||||
|
||||
} |
||||
|
||||
// Apply the mixin to the buttons |
||||
//.btn-default { @include btn-styles($default-color, $default-states-color); } |
||||
.btn-primary { @include btn-styles($primary-color, $primary-states-color); } |
||||
.btn-success { @include btn-styles($success-color, $success-states-color); } |
||||
.btn-info { @include btn-styles($info-color, $info-states-color); } |
||||
.btn-warning { @include btn-styles($warning-color, $warning-states-color); } |
||||
.btn-danger { @include btn-styles($danger-color, $danger-states-color); } |
||||
.btn-neutral { |
||||
@include btn-styles($white-color, $white-color); |
||||
|
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle{ |
||||
background-color: $white-color; |
||||
color: $default-color; |
||||
} |
||||
|
||||
&.btn-fill, |
||||
&.btn-fill:hover, |
||||
&.btn-fill:focus{ |
||||
color: $default-color; |
||||
} |
||||
|
||||
&.btn-simple:active, |
||||
&.btn-simple.active{ |
||||
background-color: transparent; |
||||
} |
||||
} |
||||
|
||||
.btn{ |
||||
&:disabled, |
||||
&[disabled], |
||||
&.disabled{ |
||||
@include opacity(.5); |
||||
} |
||||
} |
||||
.btn-round{ |
||||
border-width: $border-thin; |
||||
border-radius: $btn-round-radius !important; |
||||
padding: $padding-round-vertical $padding-round-horizontal; |
||||
|
||||
&.btn-icon{ |
||||
padding: $padding-round-vertical; |
||||
} |
||||
} |
||||
.btn-simple{ |
||||
border: $none; |
||||
font-size: $font-size-medium; |
||||
padding: $padding-base-vertical $padding-base-horizontal; |
||||
|
||||
&.btn-icon{ |
||||
padding: $padding-base-vertical; |
||||
} |
||||
} |
||||
.btn-lg{ |
||||
@include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); |
||||
font-weight: $font-weight-normal; |
||||
} |
||||
.btn-sm{ |
||||
@include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); |
||||
} |
||||
.btn-xs { |
||||
@include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $border-radius-small); |
||||
} |
||||
.btn-wd { |
||||
min-width: 140px; |
||||
} |
||||
|
||||
.btn-group.select{ |
||||
width: 100%; |
||||
} |
||||
.btn-group.select .btn{ |
||||
text-align: left; |
||||
} |
||||
.btn-group.select .caret{ |
||||
position: absolute; |
||||
top: 50%; |
||||
margin-top: -1px; |
||||
right: 8px; |
||||
} |
||||
.btn-social{ |
||||
opacity: 0.85; |
||||
} |
||||
|
||||
.btn-twitter{ |
||||
border-color: $social-twitter; |
||||
color: $social-twitter; |
||||
&:hover{ |
||||
opacity: 1 !important; |
||||
border-color: $social-twitter; |
||||
color: $social-twitter; |
||||
} |
||||
} |
||||
.btn-facebook{ |
||||
border-color: $social-facebook; |
||||
color: $social-facebook; |
||||
|
||||
&:hover{ |
||||
opacity: 1 !important; |
||||
border-color: $social-facebook; |
||||
color: $social-facebook; |
||||
} |
||||
} |
@ -0,0 +1,253 @@
@@ -0,0 +1,253 @@
|
||||
.card{ |
||||
border-radius: $border-radius-base; |
||||
background-color: $white-color; |
||||
margin-bottom: 30px; |
||||
|
||||
.card-image{ |
||||
width: 100%; |
||||
overflow: hidden; |
||||
height: 260px; |
||||
border-radius: $border-radius-base $border-radius-base 0 0; |
||||
position: relative; |
||||
-webkit-transform-style: preserve-3d; |
||||
-moz-transform-style: preserve-3d; |
||||
transform-style: preserve-3d; |
||||
|
||||
img { |
||||
width: 100%; |
||||
} |
||||
} |
||||
.filter{ |
||||
position: absolute; |
||||
z-index: 2; |
||||
background-color: rgba(0,0,0,.68); |
||||
top: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
height: 100%; |
||||
text-align: center; |
||||
|
||||
@include opacity(0); |
||||
|
||||
.btn{ |
||||
@include vertical-align(); |
||||
} |
||||
} |
||||
&:hover .filter{ |
||||
@include opacity(1); |
||||
} |
||||
.btn-hover{ |
||||
@include opacity(0); |
||||
} |
||||
&:hover .btn-hover{ |
||||
@include opacity(1); |
||||
} |
||||
.card-body{ |
||||
padding: 15px 15px 10px 15px; |
||||
} |
||||
.card-header{ |
||||
padding: 15px 15px 0; |
||||
background-color: $white-color; |
||||
border-bottom: none !important; |
||||
|
||||
} |
||||
.card-category, |
||||
label{ |
||||
font-size: $font-size-base; |
||||
font-weight: $font-weight-normal; |
||||
color: $dark-gray; |
||||
margin-bottom: 0px; |
||||
|
||||
i{ |
||||
font-size: $font-paragraph; |
||||
} |
||||
} |
||||
|
||||
label{ |
||||
font-size: $font-size-small; |
||||
margin-bottom: 5px; |
||||
text-transform: uppercase; |
||||
} |
||||
|
||||
.card-title{ |
||||
margin: $none; |
||||
color: $black-color; |
||||
font-weight: $font-weight-light; |
||||
} |
||||
.avatar{ |
||||
width: 30px; |
||||
height: 30px; |
||||
overflow: hidden; |
||||
border-radius: 50%; |
||||
margin-right: 5px; |
||||
} |
||||
.description{ |
||||
font-size: $font-size-base; |
||||
color: #333; |
||||
} |
||||
.card-footer{ |
||||
padding-top: 0; |
||||
background-color: $transparent-bg; |
||||
line-height: 30px; |
||||
border-top: none !important; |
||||
font-size: 14px; |
||||
|
||||
.legend{ |
||||
padding: 5px 0; |
||||
} |
||||
|
||||
hr{ |
||||
margin-top: 5px; |
||||
margin-bottom: 5px; |
||||
} |
||||
} |
||||
.stats{ |
||||
color: #a9a9a9; |
||||
} |
||||
.card-footer div{ |
||||
display: inline-block; |
||||
} |
||||
|
||||
.author{ |
||||
font-size: $font-size-small; |
||||
font-weight: $font-weight-bold; |
||||
text-transform: uppercase; |
||||
} |
||||
.author i{ |
||||
font-size: $font-size-base; |
||||
} |
||||
h6{ |
||||
font-size: $font-size-small; |
||||
margin: 0; |
||||
} |
||||
&.card-separator:after{ |
||||
height: 100%; |
||||
right: -15px; |
||||
top: 0; |
||||
width: 1px; |
||||
background-color: $medium-gray; |
||||
card-body: ""; |
||||
position: absolute; |
||||
} |
||||
|
||||
.ct-chart{ |
||||
margin: 30px 0 30px; |
||||
height: 245px; |
||||
} |
||||
|
||||
.ct-label{ |
||||
font-size: 1rem !important; |
||||
} |
||||
|
||||
.table{ |
||||
tbody td:first-child, |
||||
thead th:first-child{ |
||||
padding-left: 15px; |
||||
} |
||||
|
||||
tbody td:last-child, |
||||
thead th:last-child{ |
||||
padding-right: 15px; |
||||
} |
||||
} |
||||
|
||||
.alert{ |
||||
border-radius: $border-radius-base; |
||||
position: relative; |
||||
|
||||
&.alert-with-icon{ |
||||
padding-left: 65px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
.card-stats{ |
||||
.card-body{ |
||||
padding: 15px 15px 0px; |
||||
|
||||
.numbers{ |
||||
font-size: 1.8rem; |
||||
text-align: right; |
||||
|
||||
p{ |
||||
margin-bottom: 0; |
||||
} |
||||
} |
||||
} |
||||
.card-footer{ |
||||
padding: 0px 15px 10px 15px; |
||||
|
||||
|
||||
} |
||||
.icon-big { |
||||
font-size: 3em; |
||||
min-height: 64px; |
||||
|
||||
i{ |
||||
line-height: 59px; |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
.card-user{ |
||||
.card-image{ |
||||
height: 110px; |
||||
} |
||||
.card-image-plain{ |
||||
height: 0; |
||||
margin-top: 110px; |
||||
} |
||||
.author{ |
||||
text-align: center; |
||||
text-transform: none; |
||||
margin-top: -70px; |
||||
} |
||||
.avatar{ |
||||
width: 124px; |
||||
height: 124px; |
||||
border: 5px solid #FFFFFF; |
||||
position: relative; |
||||
margin-bottom: 15px; |
||||
|
||||
&.border-gray{ |
||||
border-color: #EEEEEE; |
||||
} |
||||
} |
||||
.title{ |
||||
line-height: 24px; |
||||
} |
||||
.card-body{ |
||||
min-height: 240px; |
||||
} |
||||
} |
||||
|
||||
.card-user, |
||||
.card-price{ |
||||
.card-footer{ |
||||
padding: 5px 15px 10px; |
||||
} |
||||
hr{ |
||||
margin: 5px 15px; |
||||
} |
||||
} |
||||
.card-plain{ |
||||
background-color: transparent; |
||||
box-shadow: none; |
||||
border-radius: 0; |
||||
|
||||
.card-image{ |
||||
border-radius: 4px; |
||||
} |
||||
} |
||||
|
||||
.card.card-plain{ |
||||
border: none !important; |
||||
|
||||
.card-header{ |
||||
background-color: transparent !important; |
||||
} |
||||
} |
@ -0,0 +1,230 @@
@@ -0,0 +1,230 @@
|
||||
@mixin ct-responsive-svg-container($width: 100%, $ratio: $ct-container-ratio) { |
||||
display: block; |
||||
position: relative; |
||||
width: $width; |
||||
|
||||
&:before { |
||||
display: block; |
||||
float: left; |
||||
content: ""; |
||||
width: 0; |
||||
height: 0; |
||||
padding-bottom: $ratio * 100%; |
||||
} |
||||
|
||||
&:after { |
||||
content: ""; |
||||
display: table; |
||||
clear: both; |
||||
} |
||||
|
||||
> svg { |
||||
display: block; |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
} |
||||
} |
||||
|
||||
@mixin ct-align-justify($ct-text-align: $ct-text-align, $ct-text-justify: $ct-text-justify) { |
||||
-webkit-box-align: $ct-text-align; |
||||
-webkit-align-items: $ct-text-align; |
||||
-ms-flex-align: $ct-text-align; |
||||
align-items: $ct-text-align; |
||||
-webkit-box-pack: $ct-text-justify; |
||||
-webkit-justify-content: $ct-text-justify; |
||||
-ms-flex-pack: $ct-text-justify; |
||||
justify-content: $ct-text-justify; |
||||
// Fallback to text-align for non-flex browsers |
||||
@if($ct-text-justify == 'flex-start') { |
||||
text-align: left; |
||||
} @else if ($ct-text-justify == 'flex-end') { |
||||
text-align: right; |
||||
} @else { |
||||
text-align: center; |
||||
} |
||||
} |
||||
|
||||
@mixin ct-flex() { |
||||
// Fallback to block |
||||
display: block; |
||||
display: -webkit-box; |
||||
display: -moz-box; |
||||
display: -ms-flexbox; |
||||
display: -webkit-flex; |
||||
display: flex; |
||||
} |
||||
|
||||
@mixin ct-chart-label($ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-text-line-height: $ct-text-line-height) { |
||||
fill: $ct-text-color; |
||||
color: $ct-text-color; |
||||
font-size: $ct-text-size; |
||||
line-height: $ct-text-line-height; |
||||
} |
||||
|
||||
@mixin ct-chart-grid($ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray) { |
||||
stroke: $ct-grid-color; |
||||
stroke-width: $ct-grid-width; |
||||
|
||||
@if ($ct-grid-dasharray) { |
||||
stroke-dasharray: $ct-grid-dasharray; |
||||
} |
||||
} |
||||
|
||||
@mixin ct-chart-point($ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape) { |
||||
stroke-width: $ct-point-size; |
||||
stroke-linecap: $ct-point-shape; |
||||
} |
||||
|
||||
@mixin ct-chart-line($ct-line-width: $ct-line-width, $ct-line-dasharray: $ct-line-dasharray) { |
||||
fill: none; |
||||
stroke-width: $ct-line-width; |
||||
|
||||
@if ($ct-line-dasharray) { |
||||
stroke-dasharray: $ct-line-dasharray; |
||||
} |
||||
} |
||||
|
||||
@mixin ct-chart-area($ct-area-opacity: $ct-area-opacity) { |
||||
stroke: none; |
||||
fill-opacity: $ct-area-opacity; |
||||
} |
||||
|
||||
@mixin ct-chart-bar($ct-bar-width: $ct-bar-width) { |
||||
fill: none; |
||||
stroke-width: $ct-bar-width; |
||||
} |
||||
|
||||
@mixin ct-chart-donut($ct-donut-width: $ct-donut-width) { |
||||
fill: none; |
||||
stroke-width: $ct-donut-width; |
||||
} |
||||
|
||||
@mixin ct-chart-series-color($color) { |
||||
.#{$ct-class-point}, .#{$ct-class-line}, .#{$ct-class-bar}, .#{$ct-class-slice-donut} { |
||||
stroke: $color; |
||||
} |
||||
|
||||
.#{$ct-class-slice-pie}, .#{$ct-class-area} { |
||||
fill: $color; |
||||
} |
||||
} |
||||
|
||||
@mixin ct-chart($ct-container-ratio: $ct-container-ratio, $ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray, $ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape, $ct-line-width: $ct-line-width, $ct-bar-width: $ct-bar-width, $ct-donut-width: $ct-donut-width, $ct-series-names: $ct-series-names, $ct-series-colors: $ct-series-colors) { |
||||
|
||||
.#{$ct-class-label} { |
||||
@include ct-chart-label($ct-text-color, $ct-text-size); |
||||
} |
||||
|
||||
.#{$ct-class-chart-line} .#{$ct-class-label}, |
||||
.#{$ct-class-chart-bar} .#{$ct-class-label} { |
||||
@include ct-flex(); |
||||
} |
||||
|
||||
.#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { |
||||
@include ct-align-justify(flex-end, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { |
||||
@include ct-align-justify(flex-start, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { |
||||
@include ct-align-justify(flex-end, flex-end); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: end; |
||||
} |
||||
|
||||
.#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { |
||||
@include ct-align-justify(flex-end, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { |
||||
@include ct-align-justify(flex-end, center); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { |
||||
@include ct-align-justify(flex-start, center); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { |
||||
@include ct-align-justify(flex-end, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { |
||||
@include ct-align-justify(flex-start, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: start; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { |
||||
//@include ct-chart-label($ct-text-color, $ct-text-size, center, $ct-vertical-text-justify); |
||||
@include ct-align-justify(center, flex-end); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: end; |
||||
} |
||||
|
||||
.#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { |
||||
@include ct-align-justify(center, flex-start); |
||||
// Fallback for browsers that don't support foreignObjects |
||||
text-anchor: end; |
||||
} |
||||
|
||||
.#{$ct-class-grid} { |
||||
@include ct-chart-grid($ct-grid-color, $ct-grid-width, $ct-grid-dasharray); |
||||
} |
||||
|
||||
.#{$ct-class-point} { |
||||
@include ct-chart-point($ct-point-size, $ct-point-shape); |
||||
} |
||||
|
||||
.#{$ct-class-line} { |
||||
@include ct-chart-line($ct-line-width); |
||||
} |
||||
|
||||
.#{$ct-class-area} { |
||||
@include ct-chart-area(); |
||||
} |
||||
|
||||
.#{$ct-class-bar} { |
||||
@include ct-chart-bar($ct-bar-width); |
||||
} |
||||
|
||||
.#{$ct-class-slice-donut} { |
||||
@include ct-chart-donut($ct-donut-width); |
||||
} |
||||
|
||||
@if $ct-include-colored-series { |
||||
@for $i from 0 to length($ct-series-names) { |
||||
.#{$ct-class-series}-#{nth($ct-series-names, $i + 1)} { |
||||
$color: nth($ct-series-colors, $i + 1); |
||||
|
||||
@include ct-chart-series-color($color); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@if $ct-include-classes { |
||||
@include ct-chart(); |
||||
|
||||
@if $ct-include-alternative-responsive-containers { |
||||
@for $i from 0 to length($ct-scales-names) { |
||||
.#{nth($ct-scales-names, $i + 1)} { |
||||
@include ct-responsive-svg-container($ratio: nth($ct-scales, $i + 1)); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,140 @@
@@ -0,0 +1,140 @@
|
||||
.from-check, |
||||
.form-check-radio { |
||||
margin-bottom: 12px; |
||||
position: relative; |
||||
} |
||||
|
||||
.form-check{ |
||||
.form-check-label{ |
||||
display: inline-block; |
||||
position: relative; |
||||
cursor: pointer; |
||||
padding-left: 35px; |
||||
line-height: 26px; |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.form-check-sign::before, |
||||
.form-check-sign::after{ |
||||
font-family: 'FontAwesome'; |
||||
content: "\f096"; |
||||
display: inline-block; |
||||
color: $info-color; |
||||
position: absolute; |
||||
width: 19px; |
||||
height: 19px; |
||||
margin-top: -12px; |
||||
margin-left: -23px; |
||||
font-size: 21px; |
||||
cursor: pointer; |
||||
-webkit-transition: opacity 0.3s linear; |
||||
-moz-transition: opacity 0.3s linear; |
||||
-o-transition: opacity 0.3s linear; |
||||
-ms-transition: opacity 0.3s linear; |
||||
transition: opacity 0.3s linear; |
||||
} |
||||
.form-check-sign::after{ |
||||
font-family: 'FontAwesome'; |
||||
content: "\f046"; |
||||
text-align: center; |
||||
opacity: 0; |
||||
color: $info-color; |
||||
border: 0; |
||||
background-color: inherit; |
||||
} |
||||
&.disabled{ |
||||
.form-check-label{ |
||||
color: $dark-gray; |
||||
opacity: .5; |
||||
cursor: not-allowed; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
.form-check.disabled .form-check-label, |
||||
.form-check.disabled .form-check-label { |
||||
|
||||
} |
||||
|
||||
.form-check input[type="checkbox"], |
||||
.form-check-radio input[type="radio"]{ |
||||
opacity: 0; |
||||
position: absolute; |
||||
visibility: hidden; |
||||
} |
||||
.form-check input[type="checkbox"]:checked + .form-check-sign::after{ |
||||
opacity: 1; |
||||
} |
||||
|
||||
.form-control input[type="checkbox"]:disabled + .form-check-sign::before, |
||||
.checkbox input[type="checkbox"]:disabled + .form-check-sign::after{ |
||||
cursor: not-allowed; |
||||
} |
||||
|
||||
.form-check .form-check-label input[type="checkbox"]:disabled + .form-check-sign, |
||||
.form-check-radio input[type="radio"]:disabled + .form-check-sign{ |
||||
pointer-events: none !important; |
||||
} |
||||
|
||||
.form-check-radio{ |
||||
.form-check-label{ |
||||
padding-left: 2rem; |
||||
} |
||||
&.disabled{ |
||||
.form-check-label{ |
||||
color: $dark-gray; |
||||
opacity: .5; |
||||
cursor: not-allowed; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.form-check-radio .form-check-sign::before{ |
||||
font-family: 'FontAwesome'; |
||||
content: "\f10c"; |
||||
font-size: 22px; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
display: inline-block; |
||||
position: absolute; |
||||
opacity: .50; |
||||
left: 5px; |
||||
top: -5px; |
||||
} |
||||
|
||||
.form-check-label input[type="checkbox"]:checked + .form-check-sign:before{ |
||||
// background-color: #66615B; |
||||
} |
||||
|
||||
.form-check-radio input[type="radio"] + .form-check-sign:after, |
||||
.form-check-radio input[type="radio"] { |
||||
opacity: 0; |
||||
-webkit-transition: opacity 0.3s linear; |
||||
-moz-transition: opacity 0.3s linear; |
||||
-o-transition: opacity 0.3s linear; |
||||
-ms-transition: opacity 0.3s linear; |
||||
transition: opacity 0.3s linear; |
||||
content:" "; |
||||
display: block; |
||||
} |
||||
|
||||
.form-check-radio input[type="radio"]:checked + .form-check-sign::after { |
||||
font-family: 'FontAwesome'; |
||||
content: "\f192"; |
||||
top: -5px; |
||||
position: absolute; |
||||
left: 5px; |
||||
opacity: 1; |
||||
font-size: 22px; |
||||
} |
||||
|
||||
.form-check-radio input[type="radio"]:checked + .form-check-sign::after{ |
||||
opacity: 1; |
||||
} |
||||
|
||||
|
||||
.form-check-radio input[type="radio"]:disabled + .form-check-sign::before, |
||||
.form-check-radio input[type="radio"]:disabled + .form-check-sign::after { |
||||
color: $dark-gray; |
||||
} |
@ -0,0 +1,136 @@
@@ -0,0 +1,136 @@
|
||||
.dropdown-menu{ |
||||
visibility: hidden; |
||||
margin: 0; |
||||
padding: 0; |
||||
border-radius: $border-radius-extreme; |
||||
display: block; |
||||
z-index: 9000; |
||||
position: absolute; |
||||
|
||||
@include opacity(0); |
||||
@include box-shadow($dropdown-shadow); |
||||
|
||||
.show &{ |
||||
@include opacity(1); |
||||
visibility: visible; |
||||
} |
||||
.select &{ |
||||
border-radius: $border-radius-bottom; |
||||
@include box-shadow(none); |
||||
@include transform-origin($select-coordinates); |
||||
@include transform-scale(1); |
||||
@include transition($fast-transition-time, $transition-linear); |
||||
margin-top: -20px; |
||||
} |
||||
.select.show &{ |
||||
margin-top: -1px; |
||||
} |
||||
|
||||
.dropdown-item { |
||||
padding: $padding-base-vertical $padding-base-horizontal; |
||||
color: #333333; |
||||
|
||||
img{ |
||||
margin-top: -3px; |
||||
} |
||||
} |
||||
.dropdown-item:focus{ |
||||
outline: 0 !important; |
||||
} |
||||
|
||||
.btn-group.select &{ |
||||
min-width: 100%; |
||||
} |
||||
|
||||
> li:first-child > a{ |
||||
border-top-left-radius: $border-radius-extreme; |
||||
border-top-right-radius: $border-radius-extreme; |
||||
} |
||||
|
||||
> li:last-child > a{ |
||||
border-bottom-left-radius: $border-radius-extreme; |
||||
border-bottom-right-radius: $border-radius-extreme; |
||||
} |
||||
|
||||
.select & > li:first-child > a{ |
||||
border-radius: 0; |
||||
border-bottom: 0 none; |
||||
} |
||||
|
||||
.dropdown-item:hover, |
||||
.dropdown-item:focus { |
||||
background-color: $smoke-bg; |
||||
color: #333333; |
||||
opacity: 1; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
&.dropdown-blue > li > a:hover, |
||||
&.dropdown-blue > li > a:focus{ |
||||
background-color: $light-blue; |
||||
} |
||||
&.dropdown-azure > li > a:hover, |
||||
&.dropdown-azure > li > a:focus{ |
||||
background-color: $light-azure; |
||||
} |
||||
&.ct-green > li > a:hover, |
||||
&.ct-green > li > a:focus{ |
||||
background-color: $light-green; |
||||
} |
||||
&.dropdown-orange > li > a:hover, |
||||
&.dropdown-orange > li > a:focus{ |
||||
background-color: $light-orange; |
||||
} |
||||
&.dropdown-red > li > a:hover, |
||||
&.dropdown-red > li > a:focus{ |
||||
background-color: $light-red; |
||||
} |
||||
|
||||
.dropdown-item{ |
||||
i[class*="nc-icon"]{ |
||||
font-size: 18px; |
||||
text-align: center; |
||||
line-height: 25px; |
||||
float: left; |
||||
padding-right: 10px; |
||||
} |
||||
} |
||||
|
||||
&.dropdown-menu-right{ |
||||
&:before, |
||||
&:after{ |
||||
right: 12px !important; |
||||
left: auto !important; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
.dropdown-with-icons{ |
||||
> li > a{ |
||||
padding-left: 0px; |
||||
line-height: 28px; |
||||
} |
||||
i{ |
||||
text-align: center; |
||||
line-height: 28px; |
||||
float: left; |
||||
|
||||
&[class^="pe-"]{ |
||||
font-size: 24px; |
||||
width: 46px; |
||||
} |
||||
&[class^="fa"]{ |
||||
font-size: 14px; |
||||
width: 38px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
//fix bug for the select items in btn-group |
||||
.btn-group.select{ |
||||
overflow: hidden; |
||||
} |
||||
.btn-group.select.show{ |
||||
overflow: visible; |
||||
} |
@ -0,0 +1,75 @@
@@ -0,0 +1,75 @@
|
||||
.footer{ |
||||
background-color: $white-color; |
||||
|
||||
.footer-menu{ |
||||
height: 41px; |
||||
} |
||||
|
||||
nav > ul{ |
||||
list-style: none; |
||||
margin: 0; |
||||
padding: 0; |
||||
font-weight: normal; |
||||
|
||||
a:not(.btn){ |
||||
color: $dark-gray; |
||||
display: block; |
||||
margin-bottom: 3px; |
||||
&:hover, |
||||
&:focus{ |
||||
color: $default-states-color; |
||||
} |
||||
} |
||||
} |
||||
.social-area{ |
||||
padding: 15px 0; |
||||
h5{ |
||||
padding-bottom: 15px; |
||||
} |
||||
} |
||||
.social-area > a:not(.btn){ |
||||
color: $dark-gray; |
||||
display: inline-block; |
||||
vertical-align: top; |
||||
padding: $padding-social-a; |
||||
font-size: $font-size-large-navbar; |
||||
font-weight: normal; |
||||
line-height: $line-height; |
||||
text-align: center; |
||||
&:hover, |
||||
&:focus{ |
||||
color: $default-states-color; |
||||
} |
||||
} |
||||
.copyright{ |
||||
color: $default-states-color; |
||||
padding: 10px 15px; |
||||
margin: 10px 3px; |
||||
line-height: 20px; |
||||
font-size: $font-size-base; |
||||
} |
||||
hr{ |
||||
border-color: $medium-gray; |
||||
} |
||||
.title{ |
||||
color: $default-states-color; |
||||
} |
||||
} |
||||
|
||||
.footer-default{ |
||||
background-color: $smoke-bg; |
||||
} |
||||
|
||||
.footer:not(.footer-big){ |
||||
nav > ul{ |
||||
font-size: $font-size-base; |
||||
li{ |
||||
margin-left: 20px; |
||||
float: left; |
||||
} |
||||
a{ |
||||
padding: 10px 0px; |
||||
margin: 10px 10px 10px 0px; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,141 @@
@@ -0,0 +1,141 @@
|
||||
.form-control::-moz-placeholder{ |
||||
@include placeholder($medium-gray,1); |
||||
} |
||||
.form-control:-moz-placeholder{ |
||||
@include placeholder($medium-gray,1); |
||||
} |
||||
.form-control::-webkit-input-placeholder{ |
||||
@include placeholder($medium-gray,1); |
||||
} |
||||
.form-control:-ms-input-placeholder{ |
||||
@include placeholder($medium-gray,1); |
||||
} |
||||
|
||||
.form-control { |
||||
background-color: $white-bg; |
||||
border: 1px solid $light-gray; |
||||
border-radius: $border-radius-base; |
||||
color: #565656; |
||||
@include input-size($padding-base-vertical, $padding-base-horizontal - 4, $height-base); |
||||
@include box-shadow(none); |
||||
|
||||
&:focus{ |
||||
background-color: $white-bg; |
||||
border: 1px solid $medium-dark-gray; |
||||
@include box-shadow(none); |
||||
outline: 0 !important; |
||||
color: #333333; |
||||
} |
||||
|
||||
.has-success &, |
||||
.has-error &, |
||||
.has-success &:focus, |
||||
.has-error &:focus{ |
||||
border-color: $light-gray; |
||||
@include box-shadow(none); |
||||
} |
||||
|
||||
.has-success &{ |
||||
color: $success-color; |
||||
} |
||||
.has-success &:focus{ |
||||
border-color: $success-color; |
||||
} |
||||
.has-error &{ |
||||
color: $danger-color; |
||||
} |
||||
.has-error &:focus{ |
||||
border-color: $danger-color; |
||||
} |
||||
|
||||
& + .form-control-feedback{ |
||||
border-radius: $border-radius-large; |
||||
font-size: $font-size-base; |
||||
margin-top: -7px; |
||||
position: absolute; |
||||
right: 10px; |
||||
top: 50%; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
.open &{ |
||||
border-radius: $border-radius-base $border-radius-base 0 0; |
||||
border-bottom-color: transparent; |
||||
} |
||||
} |
||||
|
||||
.input-lg{ |
||||
height: 55px; |
||||
padding: $padding-large-vertical $padding-large-horizontal; |
||||
} |
||||
|
||||
.has-error{ |
||||
.form-control-feedback{ |
||||
color: $danger-color; |
||||
} |
||||
} |
||||
.has-success{ |
||||
.form-control-feedback{ |
||||
color: $success-color |
||||
} |
||||
} |
||||
|
||||
|
||||
.input-group-addon { |
||||
background-color: $white-color; |
||||
border: 1px solid $light-gray; |
||||
border-radius: $border-radius-base; |
||||
|
||||
.has-success &, |
||||
.has-error &{ |
||||
background-color: $white-color; |
||||
border: 1px solid $light-gray; |
||||
} |
||||
.has-error .form-control:focus + &{ |
||||
border-color: $danger-color; |
||||
color: $danger-color; |
||||
} |
||||
.has-success .form-control:focus + &{ |
||||
border-color: $success-color; |
||||
color: $success-color; |
||||
} |
||||
.form-control:focus + &, |
||||
.form-control:focus ~ &{ |
||||
background-color: $white-color; |
||||
border-color: $dark-gray; |
||||
} |
||||
} |
||||
|
||||
.input-group .form-control:first-child, |
||||
.input-group-addon:first-child, |
||||
.input-group-btn:first-child > .dropdown-toggle, |
||||
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { |
||||
border-right: 0 none; |
||||
} |
||||
.input-group .form-control:last-child, |
||||
.input-group-addon:last-child, |
||||
.input-group-btn:last-child > .dropdown-toggle, |
||||
.input-group-btn:first-child > .btn:not(:first-child) { |
||||
border-left: 0 none; |
||||
} |
||||
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { |
||||
background-color: $smoke-bg; |
||||
color: $default-color; |
||||
cursor: not-allowed; |
||||
} |
||||
|
||||
.input-group-btn .btn{ |
||||
border-width: $border-thin; |
||||
padding: $padding-round-vertical $padding-base-horizontal; |
||||
} |
||||
.input-group-btn .btn-default:not(.btn-fill){ |
||||
border-color: $medium-gray; |
||||
} |
||||
|
||||
.input-group-btn:last-child > .btn{ |
||||
margin-left: 0; |
||||
} |
||||
|
||||
.input-group-focus .input-group-addon{ |
||||
border-color: $dark-gray; |
||||
} |
@ -0,0 +1,129 @@
@@ -0,0 +1,129 @@
|
||||
/* General overwrite */ |
||||
body, |
||||
.wrapper{ |
||||
min-height: 100vh; |
||||
position: relative; |
||||
} |
||||
a{ |
||||
color: $info-color; |
||||
|
||||
&:hover, &:focus{ |
||||
color: $info-states-color; |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
|
||||
a:focus, a:active, |
||||
button::-moz-focus-inner, |
||||
input::-moz-focus-inner, |
||||
input[type="reset"]::-moz-focus-inner, |
||||
input[type="button"]::-moz-focus-inner, |
||||
input[type="submit"]::-moz-focus-inner, |
||||
select::-moz-focus-inner, |
||||
input[type="file"] > input[type="button"]::-moz-focus-inner{ |
||||
outline:0; |
||||
} |
||||
.ui-slider-handle:focus, |
||||
.navbar-toggle, |
||||
input:focus { |
||||
outline : 0 !important; |
||||
} |
||||
|
||||
/* Animations */ |
||||
.form-control, |
||||
.input-group-addon, |
||||
.tagsinput, |
||||
.navbar, |
||||
.navbar .alert{ |
||||
@include transition($general-transition-time, $transition-linear); |
||||
} |
||||
|
||||
.sidebar .nav a, |
||||
.table > tbody > tr .td-actions .btn{ |
||||
@include transition($fast-transition-time, $transition-ease-in); |
||||
} |
||||
|
||||
.btn{ |
||||
@include transition($ultra-fast-transition-time, $transition-ease-in); |
||||
} |
||||
.fa{ |
||||
width: 18px; |
||||
text-align: center; |
||||
} |
||||
.margin-top{ |
||||
margin-top: 50px; |
||||
} |
||||
|
||||
.wrapper{ |
||||
position: relative; |
||||
top: 0; |
||||
height: 100vh; |
||||
} |
||||
|
||||
// documentation |
||||
|
||||
.page-header{ |
||||
.page-header-image{ |
||||
background-position: center center; |
||||
background-size: cover; |
||||
overflow: hidden; |
||||
width: 100%; |
||||
z-index: 1; |
||||
} |
||||
.title-container{ |
||||
color: #fff; |
||||
position: relative; |
||||
top: 250px; |
||||
z-index: 3; |
||||
} |
||||
.filter:after{ |
||||
background: rgba(0, 0, 0, 0) linear-gradient(to bottom, #9368e9 0%, #943bea 100%) repeat scroll 0 0 / 150% 150%; |
||||
content: ""; |
||||
display: block; |
||||
height: 100%; |
||||
left: 0; |
||||
opacity: 0.77; |
||||
position: absolute; |
||||
top: 0; |
||||
width: 100%; |
||||
z-index: 2; |
||||
} |
||||
} |
||||
|
||||
.documentation .page-header, |
||||
.documentation .page-header-image, |
||||
.documentation .page-header-image .filter:after{ |
||||
height: 100vh; |
||||
} |
||||
|
||||
.documentation .footer{ |
||||
z-index: 3; |
||||
} |
||||
.documentation .wrapper{ |
||||
margin-top: -61px; |
||||
height: 100vh; |
||||
} |
||||
.documentation .navbar{ |
||||
z-index: 21; |
||||
} |
||||
|
||||
.card-tasks{ |
||||
.card-body{ |
||||
.table{ |
||||
td{ |
||||
font-size: 14px; |
||||
|
||||
.btn{ |
||||
font-size: 14px; |
||||
} |
||||
.btn-info{ |
||||
margin-top: 3px; |
||||
padding-right: 0; |
||||
} |
||||
} |
||||
td:last-child{ |
||||
padding-right: 0; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
//Utilities |
||||
|
||||
@import "mixins/transparency"; |
||||
@import "mixins/vendor-prefixes"; |
||||
|
||||
|
||||
//Components |
||||
|
||||
@import "mixins/buttons"; |
||||
@import "mixins/inputs"; |
||||
@import "mixins/labels"; |
||||
@import "mixins/tabs"; |
||||
|
||||
@import "mixins/navbars"; |
||||
@import "mixins/icons"; |
||||
@import "mixins/social-buttons"; |
||||
|
||||
@import "mixins/morphing-buttons"; |
||||
|
||||
@import "mixins/cards"; |
||||
|
||||
@import "mixins/chartist"; |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
.modal{ |
||||
&.show{ |
||||
.modal-dialog{ |
||||
-webkit-transform: translate(0, 30%); |
||||
-o-transform: translate(0, 30%); |
||||
transform: translate(0, 30%); |
||||
} |
||||
} |
||||
&.modal-mini{ |
||||
.modal-dialog{ |
||||
max-width: 255px; |
||||
margin: 0 auto; |
||||
} |
||||
} |
||||
.modal-content{ |
||||
.modal-header{ |
||||
border-bottom: none; |
||||
padding-top: 24px; |
||||
padding-right: 24px; |
||||
padding-bottom: 0; |
||||
padding-left: 24px; |
||||
|
||||
.modal-profile{ |
||||
width: 80px; |
||||
height: 80px; |
||||
border-radius: 50%; |
||||
text-align: center; |
||||
line-height: 5.7; |
||||
box-shadow: 0px 5px 20px 0px rgba(0, 0, 0, 0.3); |
||||
|
||||
i{ |
||||
font-size: 32px; |
||||
padding-top: 24px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.modal-body{ |
||||
padding-top: 24px; |
||||
padding-right: 24px; |
||||
padding-bottom: 16px; |
||||
padding-left: 24px; |
||||
line-height: 1.9; |
||||
} |
||||
|
||||
.modal-body + .modal-footer{ |
||||
padding-top: 0; |
||||
} |
||||
|
||||
.modal-footer{ |
||||
border-top: none; |
||||
padding-right: 24px; |
||||
padding-bottom: 16px; |
||||
padding-left: 24px; |
||||
-webkit-justify-content: space-between; |
||||
justify-content: space-between; |
||||
|
||||
.btn{ |
||||
margin: 0; |
||||
padding-left: 16px; |
||||
padding-right: 16px; |
||||
width: auto; |
||||
|
||||
&:hover, |
||||
&focus{ |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,379 @@
@@ -0,0 +1,379 @@
|
||||
.nav { |
||||
.nav-item{ |
||||
.nav-link:hover, |
||||
.nav-link:focus{ |
||||
background-color: transparent; |
||||
} |
||||
} |
||||
|
||||
} |
||||
.navbar{ |
||||
border: $none; |
||||
font-size: $font-size-navbar; |
||||
border-radius: 0; |
||||
min-height: 50px; |
||||
background-color: $white-navbar; |
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1); |
||||
padding: 5px 15px; |
||||
|
||||
.navbar-brand { |
||||
font-weight: 400; |
||||
margin: 5px 0px; |
||||
font-size: 20px; |
||||
color: $default-color; |
||||
|
||||
&:hover{ |
||||
color: #5e5e5e; |
||||
} |
||||
} |
||||
.navbar-toggler{ |
||||
width: 37px; |
||||
height: 27px; |
||||
vertical-align: middle; |
||||
outline: 0; |
||||
cursor: pointer; |
||||
|
||||
&.navbar-toggler-left{ |
||||
position: relative; |
||||
left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
& .navbar-toggler-bar{ |
||||
width: 3px; |
||||
height: 3px; |
||||
border-radius: 50%; |
||||
margin: 0 auto; |
||||
} |
||||
.burger-lines{ |
||||
display: block; |
||||
position: relative; |
||||
background-color: #888; |
||||
width: 24px; |
||||
height: 2px; |
||||
border-radius: 1px; |
||||
margin: 4px auto; |
||||
} |
||||
} |
||||
|
||||
.dropdown.nav-item{ |
||||
.dropdown-toggle:after{ |
||||
margin-top: 8px; |
||||
} |
||||
} |
||||
|
||||
.navbar-nav{ |
||||
align-items: center; |
||||
|
||||
.nav-item{ |
||||
.nav-link{ |
||||
color: $default-color; |
||||
padding: $navbar-padding-a; |
||||
position: relative; |
||||
display: inline-flex; |
||||
line-height: 1.2; |
||||
|
||||
&.btn{ |
||||
margin: $navbar-margin-a-btn; |
||||
padding: $padding-base-vertical $padding-base-horizontal; |
||||
} |
||||
|
||||
&.btn-round{ |
||||
margin: $navbar-margin-a-btn-round; |
||||
} |
||||
|
||||
[class^="fa"]{ |
||||
font-size: $font-size-large + 1; |
||||
position: relative; |
||||
line-height: 40px; |
||||
top: 1px; |
||||
} |
||||
|
||||
&:hover{ |
||||
color: $info-color; |
||||
} |
||||
} |
||||
|
||||
.dropdown-menu{ |
||||
border-radius: $border-radius-extreme; |
||||
margin-top: -5px; |
||||
|
||||
.dropdown-item{ |
||||
&:first-child{ |
||||
border-top-left-radius: 10px; |
||||
border-top-right-radius: 10px; |
||||
} |
||||
&:last-child{ |
||||
border-bottom-left-radius: 10px; |
||||
border-bottom-right-radius: 10px; |
||||
} |
||||
} |
||||
|
||||
.divider{ |
||||
height: 1px; |
||||
margin: 5px 0; |
||||
overflow: hidden; |
||||
background-color: #e5e5e5; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.notification{ |
||||
position: absolute; |
||||
background-color: #FB404B; |
||||
text-align: center; |
||||
border-radius: 10px; |
||||
min-width: 18px; |
||||
padding: 0 5px; |
||||
height: 18px; |
||||
font-size: 12px; |
||||
color: $white-color; |
||||
font-weight: bold; |
||||
line-height: 18px; |
||||
top: 0; |
||||
left: 7px; |
||||
} |
||||
|
||||
.dropdown-toggle:after{ |
||||
display: inline-block; |
||||
width: 0; |
||||
height: 0; |
||||
margin-left: 5px; |
||||
margin-top: 12px; |
||||
vertical-align: middle; |
||||
border-top: 4px dashed; |
||||
border-top: 4px solid\9; |
||||
border-right: 4px solid transparent; |
||||
border-left: 4px solid transparent; |
||||
} |
||||
|
||||
|
||||
} |
||||
.btn{ |
||||
margin: $navbar-margin-btn; |
||||
font-size: $font-size-base; |
||||
} |
||||
.btn-simple{ |
||||
font-size: $font-size-medium; |
||||
} |
||||
|
||||
&.fixed{ |
||||
width: calc(100% - $sidebar-width); |
||||
right: 0; |
||||
left: auto; |
||||
border-radius: 0; |
||||
} |
||||
|
||||
.nc-icon{ |
||||
font-weight: 700; |
||||
} |
||||
} |
||||
|
||||
.navbar-transparent, [class*="navbar-ct"]{ |
||||
.navbar-brand{ |
||||
color: $white-color; |
||||
@include opacity(.9); |
||||
|
||||
&:focus, |
||||
&:hover{ |
||||
background-color: transparent; |
||||
@include opacity(1); |
||||
color: $white-color; |
||||
} |
||||
} |
||||
|
||||
.navbar-nav{ |
||||
.nav-item{ |
||||
.nav-link:not(.btn){ |
||||
color: $white-color; |
||||
border-color: $white-color; |
||||
@include opacity(0.8); |
||||
} |
||||
} |
||||
|
||||
.active, |
||||
.nav-item{ |
||||
.nav-link:not(.btn), |
||||
.nav-link:hover:not(.btn), |
||||
.nav-link:focus:not(.btn),{ |
||||
background-color: transparent; |
||||
border-radius: 3px; |
||||
color: $white-color; |
||||
@include opacity(1); |
||||
} |
||||
} |
||||
|
||||
.nav .nav-item .nav-link.btn:hover{ |
||||
background-color: transparent; |
||||
} |
||||
|
||||
.show{ |
||||
.nav-link, |
||||
.nav-link:hover, |
||||
.nav-link:focus{ |
||||
background-color: transparent; |
||||
color: $white-color; |
||||
@include opacity(1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
.btn-default{ |
||||
color: $white-color; |
||||
border-color: $white-color; |
||||
} |
||||
.btn-default.btn-fill{ |
||||
color: $dark-gray; |
||||
background-color: $white-color; |
||||
@include opacity(.9); |
||||
} |
||||
.btn-default.btn-fill:hover, |
||||
.btn-default.btn-fill:focus, |
||||
.btn-default.btn-fill:active, |
||||
.btn-default.btn-fill.active, |
||||
.show .dropdown-toggle.btn-fill.btn-default{ |
||||
border-color: $white-color; |
||||
@include opacity(1); |
||||
} |
||||
|
||||
} |
||||
.navbar-transparent{ |
||||
.dropdown-menu .divider{ |
||||
background-color: rgba($white-color,.2); |
||||
} |
||||
} |
||||
|
||||
|
||||
.navbar-default { |
||||
background-color: $white-navbar; |
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1); |
||||
|
||||
.navbar-nav{ |
||||
.nav-item{ |
||||
.nav-link:not(.btn){ |
||||
color: $dark-gray; |
||||
} |
||||
} |
||||
|
||||
.active .nav-link, |
||||
.active .nav-link:not(.btn):hover, |
||||
.active .nav-link:not(.btn):focus, |
||||
.nav-item .nav-link:not(.btn):hover, |
||||
.nav-item .nav-link:not(.btn):focus{ |
||||
background-color: transparent; |
||||
border-radius: 3px; |
||||
color: $info-color; |
||||
@include opacity(1); |
||||
} |
||||
|
||||
.show{ |
||||
.nav-link, |
||||
.nav-link:hover, |
||||
.nav-link:focus{ |
||||
background-color: transparent; |
||||
color: $info-color; |
||||
} |
||||
} |
||||
|
||||
|
||||
.navbar-toggle:hover,.navbar-toggle:focus { |
||||
background-color: transparent; |
||||
} |
||||
|
||||
} |
||||
|
||||
&:not(.navbar-transparent) .btn-default:hover{ |
||||
color: $info-color; |
||||
border-color: $info-color; |
||||
} |
||||
&:not(.navbar-transparent) .btn-neutral, |
||||
&:not(.navbar-transparent) .btn-neutral:hover, |
||||
&:not(.navbar-transparent) .btn-neutral:active{ |
||||
color: $dark-gray; |
||||
} |
||||
} |
||||
|
||||
/* Navbar with icons */ |
||||
|
||||
.navbar-icons{ |
||||
&.navbar .navbar-brand{ |
||||
margin-top: 12px; |
||||
margin-bottom: 12px; |
||||
} |
||||
.navbar-nav{ |
||||
.nav-item{ |
||||
.nav-link{ |
||||
text-align: center; |
||||
padding: $navbar-padding-a-icons; |
||||
margin: $navbar-margin-a-icons; |
||||
} |
||||
} |
||||
|
||||
[class^="pe"] { |
||||
font-size: 30px; |
||||
position: relative; |
||||
} |
||||
p { |
||||
margin: 3px 0 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.navbar-form{ |
||||
@include box-shadow(none); |
||||
.form-control{ |
||||
@include light-form(); |
||||
height: 22px; |
||||
font-size: $font-size-navbar; |
||||
line-height: $line-height-general; |
||||
color: $light-gray; |
||||
} |
||||
.navbar-transparent & .form-control, |
||||
[class*="navbar-ct"] & .form-control{ |
||||
color: $white-color; |
||||
border: $none; |
||||
border-bottom: 1px solid rgba($white-color,.6); |
||||
} |
||||
|
||||
} |
||||
|
||||
.navbar-ct-blue{ |
||||
@include navbar-color($blue-navbar); |
||||
} |
||||
.navbar-ct-azure{ |
||||
@include navbar-color($azure-navbar); |
||||
} |
||||
.navbar-ct-green{ |
||||
@include navbar-color($green-navbar); |
||||
} |
||||
.navbar-ct-orange{ |
||||
@include navbar-color($orange-navbar); |
||||
} |
||||
.navbar-ct-red{ |
||||
@include navbar-color($red-navbar); |
||||
} |
||||
|
||||
.navbar-transparent{ |
||||
padding-top: 15px; |
||||
background-color: transparent; |
||||
border-bottom: 1px solid transparent; |
||||
} |
||||
|
||||
.navbar-toggle{ |
||||
margin-top: 19px; |
||||
margin-bottom: 19px; |
||||
border: $none; |
||||
|
||||
.icon-bar { |
||||
background-color: $white-color; |
||||
} |
||||
.navbar-collapse, |
||||
.navbar-form { |
||||
border-color: transparent; |
||||
} |
||||
|
||||
&.navbar-default .navbar-toggle:hover, |
||||
&.navbar-default .navbar-toggle:focus { |
||||
background-color: transparent; |
||||
} |
||||
} |
@ -0,0 +1,574 @@
@@ -0,0 +1,574 @@
|
||||
/*-------------------------------- |
||||
|
||||
nucleo-icons Web Font - built using nucleoapp.com |
||||
License - nucleoapp.com/license/ |
||||
|
||||
-------------------------------- */ |
||||
@font-face { |
||||
font-family: 'nucleo-icons'; |
||||
src: url('../fonts/nucleo-icons.eot'); |
||||
src: url('../fonts/nucleo-icons.eot') format('embedded-opentype'), url('../fonts/nucleo-icons.woff2') format('woff2'), url('../fonts/nucleo-icons.woff') format('woff'), url('../fonts/nucleo-icons.ttf') format('truetype'), url('../fonts/nucleo-icons.svg') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
/*------------------------ |
||||
base class definition |
||||
-------------------------*/ |
||||
.nc-icon { |
||||
display: inline-block; |
||||
font: normal normal normal 14px/1 'nucleo-icons'; |
||||
font-size: inherit; |
||||
speak: none; |
||||
text-transform: none; |
||||
/* Better Font Rendering */ |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
/*------------------------ |
||||
change icon size |
||||
-------------------------*/ |
||||
.nc-icon.lg { |
||||
font-size: 1.33333333em; |
||||
vertical-align: -16%; |
||||
} |
||||
.nc-icon.x2 { |
||||
font-size: 2em; |
||||
} |
||||
.nc-icon.x3 { |
||||
font-size: 3em; |
||||
} |
||||
/*---------------------------------- |
||||
add a square/circle background |
||||
-----------------------------------*/ |
||||
.nc-icon.square, |
||||
.nc-icon.circle { |
||||
padding: 0.33333333em; |
||||
vertical-align: -16%; |
||||
background-color: #eee; |
||||
} |
||||
.nc-icon.circle { |
||||
border-radius: 50%; |
||||
} |
||||
/*------------------------ |
||||
list icons |
||||
-------------------------*/ |
||||
.nc-icon-ul { |
||||
padding-left: 0; |
||||
margin-left: 2.14285714em; |
||||
list-style-type: none; |
||||
} |
||||
.nc-icon-ul > li { |
||||
position: relative; |
||||
} |
||||
.nc-icon-ul > li > .nc-icon { |
||||
position: absolute; |
||||
left: -1.57142857em; |
||||
top: 0.14285714em; |
||||
text-align: center; |
||||
} |
||||
.nc-icon-ul > li > .nc-icon.lg { |
||||
top: 0; |
||||
left: -1.35714286em; |
||||
} |
||||
.nc-icon-ul > li > .nc-icon.circle, |
||||
.nc-icon-ul > li > .nc-icon.square { |
||||
top: -0.19047619em; |
||||
left: -1.9047619em; |
||||
} |
||||
|
||||
.all-icons{ |
||||
.font-icon-list{ |
||||
.font-icon-detail i{ |
||||
font-size: 32px; |
||||
} |
||||
} |
||||
} |
||||
/*------------------------ |
||||
spinning icons |
||||
-------------------------*/ |
||||
.nc-icon.spin { |
||||
-webkit-animation: nc-icon-spin 2s infinite linear; |
||||
-moz-animation: nc-icon-spin 2s infinite linear; |
||||
animation: nc-icon-spin 2s infinite linear; |
||||
} |
||||
@-webkit-keyframes nc-icon-spin { |
||||
0% { |
||||
-webkit-transform: rotate(0deg); |
||||
} |
||||
100% { |
||||
-webkit-transform: rotate(360deg); |
||||
} |
||||
} |
||||
@-moz-keyframes nc-icon-spin { |
||||
0% { |
||||
-moz-transform: rotate(0deg); |
||||
} |
||||
100% { |
||||
-moz-transform: rotate(360deg); |
||||
} |
||||
} |
||||
@keyframes nc-icon-spin { |
||||
0% { |
||||
-webkit-transform: rotate(0deg); |
||||
-moz-transform: rotate(0deg); |
||||
-ms-transform: rotate(0deg); |
||||
-o-transform: rotate(0deg); |
||||
transform: rotate(0deg); |
||||
} |
||||
100% { |
||||
-webkit-transform: rotate(360deg); |
||||
-moz-transform: rotate(360deg); |
||||
-ms-transform: rotate(360deg); |
||||
-o-transform: rotate(360deg); |
||||
transform: rotate(360deg); |
||||
} |
||||
} |
||||
/*------------------------ |
||||
rotated/flipped icons |
||||
-------------------------*/ |
||||
.nc-icon.rotate-90 { |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); |
||||
-webkit-transform: rotate(90deg); |
||||
-moz-transform: rotate(90deg); |
||||
-ms-transform: rotate(90deg); |
||||
-o-transform: rotate(90deg); |
||||
transform: rotate(90deg); |
||||
} |
||||
.nc-icon.rotate-180 { |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); |
||||
-webkit-transform: rotate(180deg); |
||||
-moz-transform: rotate(180deg); |
||||
-ms-transform: rotate(180deg); |
||||
-o-transform: rotate(180deg); |
||||
transform: rotate(180deg); |
||||
} |
||||
.nc-icon.rotate-270 { |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); |
||||
-webkit-transform: rotate(270deg); |
||||
-moz-transform: rotate(270deg); |
||||
-ms-transform: rotate(270deg); |
||||
-o-transform: rotate(270deg); |
||||
transform: rotate(270deg); |
||||
} |
||||
.nc-icon.flip-y { |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0); |
||||
-webkit-transform: scale(-1, 1); |
||||
-moz-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
-o-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
.nc-icon.flip-x { |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); |
||||
-webkit-transform: scale(1, -1); |
||||
-moz-transform: scale(1, -1); |
||||
-ms-transform: scale(1, -1); |
||||
-o-transform: scale(1, -1); |
||||
transform: scale(1, -1); |
||||
} |
||||
/*------------------------ |
||||
font icons |
||||
-------------------------*/ |
||||
|
||||
.nc-air-baloon::before { |
||||
content: "\ea01"; |
||||
} |
||||
|
||||
.nc-album-2::before { |
||||
content: "\ea02"; |
||||
} |
||||
|
||||
.nc-alien-33::before { |
||||
content: "\ea03"; |
||||
} |
||||
|
||||
.nc-align-center::before { |
||||
content: "\ea04"; |
||||
} |
||||
|
||||
.nc-align-left-2::before { |
||||
content: "\ea05"; |
||||
} |
||||
|
||||
.nc-ambulance::before { |
||||
content: "\ea06"; |
||||
} |
||||
|
||||
.nc-android::before { |
||||
content: "\ea07"; |
||||
} |
||||
|
||||
.nc-app::before { |
||||
content: "\ea08"; |
||||
} |
||||
|
||||
.nc-apple::before { |
||||
content: "\ea09"; |
||||
} |
||||
|
||||
.nc-atom::before { |
||||
content: "\ea0a"; |
||||
} |
||||
|
||||
.nc-attach-87::before { |
||||
content: "\ea0b"; |
||||
} |
||||
|
||||
.nc-audio-92::before { |
||||
content: "\ea0c"; |
||||
} |
||||
|
||||
.nc-backpack::before { |
||||
content: "\ea0d"; |
||||
} |
||||
|
||||
.nc-badge::before { |
||||
content: "\ea0e"; |
||||
} |
||||
|
||||
.nc-bag::before { |
||||
content: "\ea0f"; |
||||
} |
||||
|
||||
.nc-bank::before { |
||||
content: "\ea10"; |
||||
} |
||||
|
||||
.nc-battery-81::before { |
||||
content: "\ea11"; |
||||
} |
||||
|
||||
.nc-bell-55::before { |
||||
content: "\ea12"; |
||||
} |
||||
|
||||
.nc-bold::before { |
||||
content: "\ea13"; |
||||
} |
||||
|
||||
.nc-bulb-63::before { |
||||
content: "\ea14"; |
||||
} |
||||
|
||||
.nc-bullet-list-67::before { |
||||
content: "\ea15"; |
||||
} |
||||
|
||||
.nc-bus-front-12::before { |
||||
content: "\ea16"; |
||||
} |
||||
|
||||
.nc-button-pause::before { |
||||
content: "\ea17"; |
||||
} |
||||
|
||||
.nc-button-play::before { |
||||
content: "\ea18"; |
||||
} |
||||
|
||||
.nc-button-power::before { |
||||
content: "\ea19"; |
||||
} |
||||
|
||||
.nc-camera-20::before { |
||||
content: "\ea1a"; |
||||
} |
||||
|
||||
.nc-caps-small::before { |
||||
content: "\ea1b"; |
||||
} |
||||
|
||||
.nc-cart-simple::before { |
||||
content: "\ea1c"; |
||||
} |
||||
|
||||
.nc-cctv::before { |
||||
content: "\ea1d"; |
||||
} |
||||
|
||||
.nc-chart-bar-32::before { |
||||
content: "\ea1e"; |
||||
} |
||||
|
||||
.nc-chart-pie-35::before { |
||||
content: "\ea1f"; |
||||
} |
||||
|
||||
.nc-chart-pie-36::before { |
||||
content: "\ea20"; |
||||
} |
||||
|
||||
.nc-chart::before { |
||||
content: "\ea21"; |
||||
} |
||||
|
||||
.nc-chat-round::before { |
||||
content: "\ea22"; |
||||
} |
||||
|
||||
.nc-check-2::before { |
||||
content: "\ea23"; |
||||
} |
||||
|
||||
.nc-circle-09::before { |
||||
content: "\ea24"; |
||||
} |
||||
|
||||
.nc-circle::before { |
||||
content: "\ea25"; |
||||
} |
||||
|
||||
.nc-cloud-download-93::before { |
||||
content: "\ea26"; |
||||
} |
||||
|
||||
.nc-cloud-upload-94::before { |
||||
content: "\ea27"; |
||||
} |
||||
|
||||
.nc-compass-05::before { |
||||
content: "\ea28"; |
||||
} |
||||
|
||||
.nc-controller-modern::before { |
||||
content: "\ea29"; |
||||
} |
||||
|
||||
.nc-credit-card::before { |
||||
content: "\ea2a"; |
||||
} |
||||
|
||||
.nc-delivery-fast::before { |
||||
content: "\ea2b"; |
||||
} |
||||
|
||||
.nc-email-83::before { |
||||
content: "\ea2c"; |
||||
} |
||||
|
||||
.nc-email-85::before { |
||||
content: "\ea2d"; |
||||
} |
||||
|
||||
.nc-explore-2::before { |
||||
content: "\ea2e"; |
||||
} |
||||
|
||||
.nc-fav-remove::before { |
||||
content: "\ea2f"; |
||||
} |
||||
|
||||
.nc-favourite-28::before { |
||||
content: "\ea30"; |
||||
} |
||||
|
||||
.nc-globe-2::before { |
||||
content: "\ea31"; |
||||
} |
||||
|
||||
.nc-grid-45::before { |
||||
content: "\ea32"; |
||||
} |
||||
|
||||
.nc-headphones-2::before { |
||||
content: "\ea33"; |
||||
} |
||||
|
||||
.nc-html5::before { |
||||
content: "\ea34"; |
||||
} |
||||
|
||||
.nc-istanbul::before { |
||||
content: "\ea35"; |
||||
} |
||||
|
||||
.nc-key-25::before { |
||||
content: "\ea36"; |
||||
} |
||||
|
||||
.nc-layers-3::before { |
||||
content: "\ea37"; |
||||
} |
||||
|
||||
.nc-light-3::before { |
||||
content: "\ea38"; |
||||
} |
||||
|
||||
.nc-lock-circle-open::before { |
||||
content: "\ea39"; |
||||
} |
||||
|
||||
.nc-map-big::before { |
||||
content: "\ea3a"; |
||||
} |
||||
|
||||
.nc-mobile::before { |
||||
content: "\ea3c"; |
||||
} |
||||
|
||||
.nc-money-coins::before { |
||||
content: "\ea3b"; |
||||
} |
||||
|
||||
.nc-note-03::before { |
||||
content: "\ea3d"; |
||||
} |
||||
|
||||
.nc-notes::before { |
||||
content: "\ea3e"; |
||||
} |
||||
|
||||
.nc-notification-70::before { |
||||
content: "\ea3f"; |
||||
} |
||||
|
||||
.nc-palette::before { |
||||
content: "\ea40"; |
||||
} |
||||
|
||||
.nc-paper-2::before { |
||||
content: "\ea41"; |
||||
} |
||||
|
||||
.nc-pin-3::before { |
||||
content: "\ea42"; |
||||
} |
||||
|
||||
.nc-planet::before { |
||||
content: "\ea43"; |
||||
} |
||||
|
||||
.nc-preferences-circle-rotate::before { |
||||
content: "\ea44"; |
||||
} |
||||
|
||||
.nc-puzzle-10::before { |
||||
content: "\ea45"; |
||||
} |
||||
|
||||
.nc-quote::before { |
||||
content: "\ea46"; |
||||
} |
||||
|
||||
.nc-refresh-02::before { |
||||
content: "\ea47"; |
||||
} |
||||
|
||||
.nc-ruler-pencil::before { |
||||
content: "\ea48"; |
||||
} |
||||
|
||||
.nc-satisfied::before { |
||||
content: "\ea49"; |
||||
} |
||||
|
||||
.nc-scissors::before { |
||||
content: "\ea4a"; |
||||
} |
||||
|
||||
.nc-send::before { |
||||
content: "\ea4b"; |
||||
} |
||||
|
||||
.nc-settings-90::before { |
||||
content: "\ea4c"; |
||||
} |
||||
|
||||
.nc-settings-gear-64::before { |
||||
content: "\ea4d"; |
||||
} |
||||
|
||||
.nc-settings-tool-66::before { |
||||
content: "\ea4e"; |
||||
} |
||||
|
||||
.nc-simple-add::before { |
||||
content: "\ea4f"; |
||||
} |
||||
|
||||
.nc-simple-delete::before { |
||||
content: "\ea50"; |
||||
} |
||||
|
||||
.nc-simple-remove::before { |
||||
content: "\ea51"; |
||||
} |
||||
|
||||
.nc-single-02::before { |
||||
content: "\ea52"; |
||||
} |
||||
|
||||
.nc-single-copy-04::before { |
||||
content: "\ea53"; |
||||
} |
||||
|
||||
.nc-spaceship::before { |
||||
content: "\ea54"; |
||||
} |
||||
|
||||
.nc-square-pin::before { |
||||
content: "\ea55"; |
||||
} |
||||
|
||||
.nc-stre-down::before { |
||||
content: "\ea56"; |
||||
} |
||||
|
||||
.nc-stre-left::before { |
||||
content: "\ea57"; |
||||
} |
||||
|
||||
.nc-stre-right::before { |
||||
content: "\ea58"; |
||||
} |
||||
|
||||
.nc-stre-up::before { |
||||
content: "\ea59"; |
||||
} |
||||
|
||||
.nc-sun-fog-29::before { |
||||
content: "\ea5a"; |
||||
} |
||||
|
||||
.nc-support-17::before { |
||||
content: "\ea5b"; |
||||
} |
||||
|
||||
.nc-tablet-2::before { |
||||
content: "\ea5c"; |
||||
} |
||||
|
||||
.nc-tag-content::before { |
||||
content: "\ea5d"; |
||||
} |
||||
|
||||
.nc-tap-01::before { |
||||
content: "\ea5e"; |
||||
} |
||||
|
||||
.nc-time-alarm::before { |
||||
content: "\ea5f"; |
||||
} |
||||
|
||||
.nc-tv-2::before { |
||||
content: "\ea60"; |
||||
} |
||||
|
||||
.nc-umbrella-13::before { |
||||
content: "\ea61"; |
||||
} |
||||
|
||||
.nc-vector::before { |
||||
content: "\ea62"; |
||||
} |
||||
|
||||
.nc-watch-time::before { |
||||
content: "\ea63"; |
||||
} |
||||
|
||||
.nc-zoom-split::before { |
||||
content: "\ea64"; |
||||
} |
||||
|
||||
|
||||
/* all icon font classes list here */ |
@ -0,0 +1,476 @@
@@ -0,0 +1,476 @@
|
||||
@media (min-width: 992px){ |
||||
.navbar-form { |
||||
margin-top: 21px; |
||||
margin-bottom: 21px; |
||||
padding-left: 5px; |
||||
padding-right: 5px; |
||||
} |
||||
.navbar-nav .nav-item .dropdown-menu, .dropdown .dropdown-menu{ |
||||
@include transform-scale(0); |
||||
@include transition($slow-transition-time, $transition-bezier); |
||||
} |
||||
.navbar-nav .nav-item.show .dropdown-menu, .dropdown.show .dropdown-menu{ |
||||
@include transform-scale(1); |
||||
@include transform-origin($dropdown-coordinates); |
||||
|
||||
} |
||||
.close-layer, |
||||
.nav-mobile-menu{ |
||||
display: none !important; |
||||
} |
||||
|
||||
.footer{ |
||||
height: 60px; |
||||
.footer-menu{ |
||||
float: left; |
||||
} |
||||
.copyright{ |
||||
float: right; |
||||
} |
||||
} |
||||
.navbar-nav .nav-item .dropdown-menu:before{ |
||||
border-bottom: 11px solid rgba(0, 0, 0, 0.2); |
||||
border-left: 11px solid rgba(0, 0, 0, 0); |
||||
border-right: 11px solid rgba(0, 0, 0, 0); |
||||
content: ""; |
||||
display: inline-block; |
||||
position: absolute; |
||||
left: 12px; |
||||
top: -11px; |
||||
} |
||||
.navbar-nav .nav-item .dropdown-menu:after { |
||||
border-bottom: 11px solid #FFFFFF; |
||||
border-left: 11px solid rgba(0, 0, 0, 0); |
||||
border-right: 11px solid rgba(0, 0, 0, 0); |
||||
content: ""; |
||||
display: inline-block; |
||||
position: absolute; |
||||
left: 12px; |
||||
top: -10px; |
||||
} |
||||
|
||||
.navbar-nav.navbar-right .nav-item .dropdown-menu:before{ |
||||
left: auto; |
||||
right: 12px; |
||||
} |
||||
|
||||
.navbar-nav.navbar-right .nav-item .dropdown-menu:after{ |
||||
left: auto; |
||||
right: 12px; |
||||
} |
||||
|
||||
.footer:not(.footer-big){ |
||||
nav > ul{ |
||||
li:first-child{ |
||||
margin-left: 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.card{ |
||||
form{ |
||||
[class*="col-"]{ |
||||
padding: 6px; |
||||
} |
||||
[class*="col-"]:first-child{ |
||||
padding-left: 15px; |
||||
} |
||||
[class*="col-"]:last-child{ |
||||
padding-right: 15px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
/* Changes for small display */ |
||||
|
||||
@media (max-width: 991px){ |
||||
|
||||
.sidebar{ |
||||
right: 0 !important; |
||||
left: auto; |
||||
position: fixed; |
||||
@include transform-translate-3d(262px); |
||||
@include transition (0.5s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
} |
||||
|
||||
.nav-open{ |
||||
.main-panel{ |
||||
position: absolute; |
||||
left: 0; |
||||
@include transform-translate-3d(-250px); |
||||
@include transition (0.5s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
} |
||||
|
||||
.sidebar{ |
||||
@include transform-translate-3d(10px); |
||||
@include transition (0.5s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
} |
||||
} |
||||
|
||||
.main-panel{ |
||||
@include transform-translate-3d(0px); |
||||
@include transition (0.5s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
} |
||||
|
||||
|
||||
.nav-item.active-pro{ |
||||
position: relative !important; |
||||
} |
||||
|
||||
.nav-mobile-menu{ |
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.2); |
||||
margin-bottom: 15px; |
||||
padding-bottom: 15px; |
||||
padding-top: 5px; |
||||
|
||||
.dropdown{ |
||||
.dropdown-menu{ |
||||
position: static !important; |
||||
float: none; |
||||
width: auto; |
||||
color: $white-color; |
||||
margin-top: 0; |
||||
background-color: transparent; |
||||
border: 0; |
||||
-webkit-box-shadow: none; |
||||
box-shadow: none; |
||||
@include transition (0.5s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
|
||||
.dropdown-item{ |
||||
margin: 5px 15px 0px 20px; |
||||
border-radius: 4px; |
||||
color: $white-color; |
||||
opacity: .86; |
||||
padding: 8px 50px; |
||||
&:hover{ |
||||
background-color: rgba(255, 255, 255, 0.23) |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
.nav-item{ |
||||
.nav-link{ |
||||
span{ |
||||
display: inline-block !important; |
||||
} |
||||
.no-icon{ |
||||
padding-left: 50px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.main-panel{ |
||||
width: 100%; |
||||
} |
||||
|
||||
.navbar-transparent{ |
||||
padding-top: 15px; |
||||
background-color: rgba(0, 0, 0, 0.45); |
||||
} |
||||
body { |
||||
position: relative; |
||||
} |
||||
.wrapper{ |
||||
left: 0; |
||||
background-color: white; |
||||
} |
||||
|
||||
.navbar{ |
||||
padding-right: 30px; |
||||
padding-left: 30px; |
||||
} |
||||
|
||||
.navbar-nav{ |
||||
.nav-item{ |
||||
float: none; |
||||
position: relative; |
||||
display: block; |
||||
} |
||||
} |
||||
|
||||
body > .navbar-collapse { |
||||
position: fixed; |
||||
display: block; |
||||
top: 0; |
||||
height: 100%; |
||||
right: 0; |
||||
left: auto; |
||||
z-index: 1032; |
||||
visibility: visible; |
||||
background-color: #999; |
||||
overflow-y: visible; |
||||
border-top: none; |
||||
text-align: left; |
||||
padding: 0; |
||||
|
||||
@include transform-translate-x(260px); |
||||
@include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1)); |
||||
> ul { |
||||
position: relative; |
||||
z-index: 4; |
||||
overflow-y:scroll; |
||||
height: calc(100vh - 61px); |
||||
width: 100%; |
||||
} |
||||
|
||||
&::before{ |
||||
top: 0; |
||||
left: 0; |
||||
height: 100%; |
||||
width: 100%; |
||||
position: absolute; |
||||
background-color: #282828; |
||||
display: block; |
||||
content: ""; |
||||
z-index: 1; |
||||
} |
||||
|
||||
.logo{ |
||||
position: relative; |
||||
z-index: 4; |
||||
} |
||||
|
||||
.nav li > a{ |
||||
padding: 10px 15px; |
||||
} |
||||
} |
||||
.nav-show .navbar-collapse{ |
||||
@include transform-translate-x(0px); |
||||
} |
||||
.nav-show .navbar .container{ |
||||
left: -250px; |
||||
} |
||||
.nav-show .wrapper{ |
||||
left: 0; |
||||
@include transform-translate-x(-260px); |
||||
} |
||||
.navbar-toggle .icon-bar { |
||||
display: block; |
||||
position: relative; |
||||
background: #fff; |
||||
width: 24px; |
||||
height: 2px; |
||||
border-radius: 1px; |
||||
margin: 0 auto; |
||||
} |
||||
|
||||
.navbar-header .navbar-toggle { |
||||
margin: 10px 15px 10px 0; |
||||
width: 40px; |
||||
height: 40px; |
||||
} |
||||
.bar1, |
||||
.bar2, |
||||
.bar3 { |
||||
outline: 1px solid transparent; |
||||
} |
||||
.bar1 { |
||||
top: 0px; |
||||
@include bar-animation($topbar-back); |
||||
} |
||||
.bar2 { |
||||
opacity: 1; |
||||
} |
||||
.bar3 { |
||||
bottom: 0px; |
||||
@include bar-animation($bottombar-back); |
||||
} |
||||
.toggled .bar1 { |
||||
top: 6px; |
||||
@include bar-animation($topbar-x); |
||||
} |
||||
.toggled .bar2 { |
||||
opacity: 0; |
||||
} |
||||
.toggled .bar3 { |
||||
bottom: 6px; |
||||
@include bar-animation($bottombar-x); |
||||
} |
||||
|
||||
@include topbar-x-rotation(); |
||||
@include topbar-back-rotation(); |
||||
@include bottombar-x-rotation(); |
||||
@include bottombar-back-rotation(); |
||||
|
||||
@-webkit-keyframes fadeIn { |
||||
0% {opacity: 0;} |
||||
100% {opacity: 1;} |
||||
} |
||||
@-moz-keyframes fadeIn { |
||||
0% {opacity: 0;} |
||||
100% {opacity: 1;} |
||||
} |
||||
@keyframes fadeIn { |
||||
0% {opacity: 0;} |
||||
100% {opacity: 1;} |
||||
} |
||||
|
||||
.dropdown-menu .divider{ |
||||
background-color: rgba(229, 229, 229, 0.15); |
||||
} |
||||
|
||||
.navbar-nav { |
||||
margin: 1px 0; |
||||
|
||||
.show .dropdown-menu .nav-item{ |
||||
.nav-link{ |
||||
padding: 10px 15px 10px 60px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
[class*="navbar-"] .navbar-nav { |
||||
& > li > a, |
||||
> li > a:hover, |
||||
> li > a:focus, |
||||
.active > a, |
||||
.active > a:hover, |
||||
.active > a:focus, |
||||
.show .dropdown-menu > li > a, |
||||
.show .dropdown-menu > li > a:hover, |
||||
.show .dropdown-menu > li > a:focus, |
||||
.show .dropdown-menu > li > a:active { |
||||
color: white; |
||||
} |
||||
|
||||
& > li > a, |
||||
> li > a:hover, |
||||
> li > a:focus{ |
||||
opacity: .7; |
||||
background-color: transparent; |
||||
outline: none; |
||||
} |
||||
|
||||
.show .dropdown-menu > li > a:hover, |
||||
.show .dropdown-menu > li > a:focus{ |
||||
background-color: rgba(255,255,255, .1); |
||||
} |
||||
|
||||
|
||||
|
||||
&.navbar-nav .show .dropdown-menu > li > a:active { |
||||
opacity: 1; |
||||
} |
||||
|
||||
& .dropdown > a{ |
||||
&:hover .caret { |
||||
border-bottom-color: #fff; |
||||
border-top-color: #fff; |
||||
} |
||||
&:active .caret { |
||||
border-bottom-color: white; |
||||
border-top-color: white; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
.navbar-fixed-top { |
||||
-webkit-backface-visibility: hidden; |
||||
} |
||||
#bodyClick { |
||||
height: 100%; |
||||
width: 100%; |
||||
position: fixed; |
||||
opacity: 0; |
||||
top: 0; |
||||
left: auto; |
||||
right: 250px; |
||||
content: ""; |
||||
z-index: 9999; |
||||
overflow-x: hidden; |
||||
} |
||||
|
||||
.social-line .btn{ |
||||
margin: $margin-bottom; |
||||
} |
||||
.subscribe-line .form-control{ |
||||
margin: $margin-bottom; |
||||
} |
||||
.social-line.pull-right{ |
||||
float: none; |
||||
} |
||||
.social-area.pull-right{ |
||||
float: none !important; |
||||
} |
||||
.form-control + .form-control-feedback{ |
||||
margin-top: -8px; |
||||
} |
||||
.navbar-toggle:hover,.navbar-toggle:focus { |
||||
background-color: transparent !important; |
||||
} |
||||
.btn.dropdown-toggle{ |
||||
margin-bottom: 0; |
||||
} |
||||
.media-post .author{ |
||||
width: 20%; |
||||
float: none !important; |
||||
display: block; |
||||
margin: 0 auto 10px; |
||||
} |
||||
.media-post .media-body{ |
||||
width: 100%; |
||||
} |
||||
|
||||
.navbar-collapse.collapse{ |
||||
height: 100% !important; |
||||
} |
||||
.navbar-collapse.collapse.in { |
||||
display: block; |
||||
} |
||||
.navbar-header .collapse, .navbar-toggle { |
||||
display:block !important; |
||||
} |
||||
.navbar-header { |
||||
float:none; |
||||
} |
||||
.navbar-nav .show .dropdown-menu { |
||||
position: static; |
||||
float: none; |
||||
width: auto; |
||||
margin-top: 0; |
||||
background-color: transparent; |
||||
border: 0; |
||||
-webkit-box-shadow: none; |
||||
box-shadow: none; |
||||
} |
||||
.navbar-collapse{ |
||||
.navbar-nav p{ |
||||
line-height: 40px !important; |
||||
margin: 0; |
||||
} |
||||
|
||||
[class^="pe-7s-"]{ |
||||
float: left; |
||||
font-size: 20px; |
||||
margin-right: 10px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
//overwrite table responsive for 768px screens |
||||
|
||||
@media (min-width: 992px){ |
||||
.table-full-width{ |
||||
margin-left: -15px; |
||||
margin-right: -15px; |
||||
} |
||||
.table-responsive{ |
||||
overflow: visible; |
||||
} |
||||
|
||||
} |
||||
|
||||
@media (max-width: 991px){ |
||||
.table-responsive { |
||||
width: 100%; |
||||
margin-bottom: 15px; |
||||
overflow-x: scroll; |
||||
overflow-y: hidden; |
||||
-ms-overflow-style: -ms-autohiding-scrollbar; |
||||
-webkit-overflow-scrolling: touch; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,430 @@
@@ -0,0 +1,430 @@
|
||||
.sidebar, |
||||
body > .navbar-collapse{ |
||||
position: absolute; |
||||
top: 0; |
||||
bottom: 0; |
||||
left: 0; |
||||
width: 260px; |
||||
display: block; |
||||
z-index: 1; |
||||
color: #fff; |
||||
font-weight: 200; |
||||
background-size: cover; |
||||
background-position: center center; |
||||
|
||||
.sidebar-wrapper{ |
||||
position: relative; |
||||
max-height: calc(100vh - 75px); |
||||
min-height: 100%; |
||||
overflow: auto; |
||||
width: 260px; |
||||
z-index: 4; |
||||
padding-bottom: 100px; |
||||
} |
||||
|
||||
.sidebar-background{ |
||||
position: absolute; |
||||
z-index: 1; |
||||
height: 100%; |
||||
width: 100%; |
||||
display: block; |
||||
top: 0; |
||||
left: 0; |
||||
background-size: cover; |
||||
background-position: center center; |
||||
} |
||||
|
||||
.logo{ |
||||
padding: 10px 5px; |
||||
margin: 0 20px; |
||||
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.2); |
||||
position: relative; |
||||
z-index: 4; |
||||
|
||||
p{ |
||||
float: left; |
||||
font-size: 20px; |
||||
margin: 10px 10px; |
||||
color: $white-color; |
||||
line-height: 20px; |
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
||||
} |
||||
|
||||
.simple-text{ |
||||
text-transform: uppercase; |
||||
padding: $padding-zero; |
||||
display: block; |
||||
font-size: $font-size-large; |
||||
color: $white-color; |
||||
text-align: left; |
||||
font-weight: $font-weight-normal; |
||||
line-height: 40px; |
||||
|
||||
.logo-img{ |
||||
width: 40px; |
||||
display: inline-block; |
||||
height: 40px; |
||||
margin-left: 0px; |
||||
margin-right: 10px; |
||||
background: white; |
||||
border-radius: 40px; |
||||
text-align: center; |
||||
|
||||
img{ |
||||
max-width: 21px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.logo-tim{ |
||||
border-radius: 50%; |
||||
border: 1px solid #333; |
||||
display: block; |
||||
height: 61px; |
||||
width: 61px; |
||||
float: left; |
||||
overflow: hidden; |
||||
|
||||
img{ |
||||
width: 60px; |
||||
height: 60px; |
||||
} |
||||
} |
||||
|
||||
.nav{ |
||||
margin-top: 20px; |
||||
float: none; |
||||
display: block; |
||||
|
||||
li{ |
||||
.nav-link{ |
||||
color: $white-color; |
||||
margin: 5px 15px; |
||||
opacity: .86; |
||||
border-radius: 4px; |
||||
display: block; |
||||
padding: 10px 15px; |
||||
|
||||
&:hover{ |
||||
background: rgba(255, 255, 255, 0.13); |
||||
opacity: 1; |
||||
} |
||||
|
||||
p{ |
||||
margin: 0; |
||||
line-height: 31px; |
||||
font-size: 12px; |
||||
font-weight: 600; |
||||
text-transform: uppercase; |
||||
display: inline-flex; |
||||
} |
||||
|
||||
i{ |
||||
font-size: 28px; |
||||
margin-right: 15px; |
||||
width: 30px; |
||||
text-align: center; |
||||
vertical-align: middle; |
||||
float: left; |
||||
} |
||||
} |
||||
|
||||
&:hover .nav-link{ |
||||
background: rgba(255,255,255,0.13); |
||||
opacity: 1; |
||||
} |
||||
|
||||
&.active .nav-link{ |
||||
color: $white-color; |
||||
opacity: 1; |
||||
background: rgba(255,255,255,0.23); |
||||
|
||||
} |
||||
|
||||
&.separator{ |
||||
margin: 15px 0; |
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.2); |
||||
|
||||
& + .nav-item { |
||||
margin-top: 31px; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
|
||||
.caret{ |
||||
margin-top: 13px; |
||||
position: absolute; |
||||
right: 30px; |
||||
} |
||||
|
||||
.active-pro{ |
||||
position: absolute; |
||||
width: 100%; |
||||
bottom: 10px; |
||||
|
||||
a{ |
||||
color: $white-color !important; |
||||
|
||||
} |
||||
} |
||||
|
||||
.nav-link{ |
||||
color: $white-color; |
||||
margin: 5px 15px; |
||||
opacity: .86; |
||||
border-radius: 4px; |
||||
text-transform: uppercase; |
||||
line-height: 30px; |
||||
font-size: 12px; |
||||
font-weight: 600; |
||||
} |
||||
} |
||||
|
||||
.logo-tim{ |
||||
border-radius: 50%; |
||||
border: 1px solid #333; |
||||
display: block; |
||||
height: 61px; |
||||
width: 61px; |
||||
float: left; |
||||
overflow: hidden; |
||||
|
||||
img{ |
||||
width: 60px; |
||||
height: 60px; |
||||
} |
||||
} |
||||
|
||||
&:after, |
||||
&:before{ |
||||
display: block; |
||||
content: ""; |
||||
position: absolute; |
||||
width: 100%; |
||||
height: 100%; |
||||
top: 0; |
||||
left: 0; |
||||
z-index: 2; |
||||
} |
||||
|
||||
&:before{ |
||||
opacity: .33; |
||||
background: #000000; |
||||
} |
||||
|
||||
&:after{ |
||||
@include icon-gradient($new-purple, $purple-color-bottom); |
||||
z-index: 3; |
||||
opacity: 1; |
||||
} |
||||
|
||||
&[data-image]:after, |
||||
&.has-image:after{ |
||||
opacity: .77; |
||||
} |
||||
|
||||
&[data-color="black"]:after{ |
||||
@include icon-gradient($black-color-filter-top, $black-color-filter-bottom); |
||||
} |
||||
&[data-color="blue"]:after{ |
||||
@include icon-gradient($new-dark-blue, $blue-color-bottom); |
||||
} |
||||
&[data-color="azure"]:after{ |
||||
@include icon-gradient($new-blue, $azure-color-bottom); |
||||
} |
||||
&[data-color="green"]:after{ |
||||
@include icon-gradient($new-green, $green-color-bottom); |
||||
} |
||||
&[data-color="orange"]:after{ |
||||
@include icon-gradient($new-orange, $orange-color-bottom); |
||||
} |
||||
&[data-color="red"]:after{ |
||||
@include icon-gradient($new-red, $red-color-bottom); |
||||
} |
||||
&[data-color="purple"]:after{ |
||||
@include icon-gradient($new-purple, $purple-color-bottom); |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
.main-panel{ |
||||
background: rgba(203,203,210,.15); |
||||
position: relative; |
||||
float: right; |
||||
width: $sidebar-width; |
||||
min-height: 100%; |
||||
|
||||
> .content{ |
||||
padding: 30px 15px; |
||||
min-height: calc(100% - 123px); |
||||
} |
||||
|
||||
> .footer{ |
||||
border-top: 1px solid #e7e7e7; |
||||
} |
||||
|
||||
.navbar{ |
||||
margin-bottom: 0; |
||||
} |
||||
} |
||||
|
||||
.sidebar, |
||||
.main-panel{ |
||||
overflow: auto; |
||||
max-height: 100%; |
||||
height: 100%; |
||||
-webkit-transition-property: top,bottom; |
||||
transition-property: top,bottom; |
||||
-webkit-transition-duration: .2s,.2s; |
||||
transition-duration: .2s,.2s; |
||||
-webkit-transition-timing-function: linear,linear; |
||||
transition-timing-function: linear,linear; |
||||
-webkit-overflow-scrolling: touch; |
||||
} |
||||
|
||||
|
||||
.fixed-plugin{ |
||||
|
||||
.dropdown{ |
||||
.dropdown-menu{ |
||||
@include transform-translate-3d-0(-5%); |
||||
border-radius: 10px; |
||||
li.adjustments-line{ |
||||
border-bottom: 1px solid #ddd; |
||||
} |
||||
li{ |
||||
padding: 5px 2px !important; |
||||
} |
||||
.button-container{ |
||||
a{ |
||||
font-size: 14px; |
||||
} |
||||
&.show{ |
||||
@include transform-translate-3d-0(0%); |
||||
transform-origin: 0 0; |
||||
left: -303px !important; |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
.fixed-plugin .dropdown .dropdown-menu{ |
||||
@include transform-translate-y-dropdown(-5%); |
||||
top: -40px !important; |
||||
opacity: 0; |
||||
left: -303px !important; |
||||
transform-origin: 0 0; |
||||
} |
||||
.fixed-plugin .dropdown.show .dropdown-menu{ |
||||
opacity: 1; |
||||
@include transform-translate-y-dropdown(0%); |
||||
transform-origin: 0 0; |
||||
left: -303px !important; |
||||
} |
||||
|
||||
.fixed-plugin .dropdown-menu:before, |
||||
.fixed-plugin .dropdown-menu:after{ |
||||
content: ""; |
||||
display: inline-block; |
||||
position: absolute; |
||||
top: 65px; |
||||
width: 16px; |
||||
transform: translateY(-50%); |
||||
-webkit-transform: translateY(-50%); |
||||
-moz-transform: translateY(-50%); |
||||
|
||||
} |
||||
.fixed-plugin .dropdown-menu:before{ |
||||
border-bottom: 16px solid rgba(0, 0, 0, 0); |
||||
border-left: 16px solid rgba(0,0,0,0.2); |
||||
border-top: 16px solid rgba(0,0,0,0); |
||||
right: -16px; |
||||
} |
||||
|
||||
.fixed-plugin .dropdown-menu:after{ |
||||
border-bottom: 16px solid rgba(0, 0, 0, 0); |
||||
border-left: 16px solid #fff; |
||||
border-top: 16px solid rgba(0,0,0,0); |
||||
right: -15px; |
||||
} |
||||
|
||||
.modal{ |
||||
&.show{ |
||||
.modal-dialog{ |
||||
-webkit-transform: translate(0, 30%); |
||||
-o-transform: translate(0, 30%); |
||||
transform: translate(0, 30%); |
||||
} |
||||
} |
||||
&.modal-mini{ |
||||
.modal-dialog{ |
||||
max-width: 255px; |
||||
margin: 0 auto; |
||||
} |
||||
} |
||||
.modal-content{ |
||||
.modal-header{ |
||||
border-bottom: none; |
||||
padding-top: 24px; |
||||
padding-right: 24px; |
||||
padding-bottom: 0; |
||||
padding-left: 24px; |
||||
|
||||
.modal-profile{ |
||||
width: 80px; |
||||
height: 80px; |
||||
border-radius: 50%; |
||||
text-align: center; |
||||
line-height: 5.7; |
||||
box-shadow: 0px 5px 20px 0px rgba(0, 0, 0, 0.3); |
||||
|
||||
i{ |
||||
font-size: 32px; |
||||
padding-top: 24px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.modal-body{ |
||||
padding-top: 24px; |
||||
padding-right: 24px; |
||||
padding-bottom: 16px; |
||||
padding-left: 24px; |
||||
line-height: 1.9; |
||||
} |
||||
|
||||
.modal-body + .modal-footer{ |
||||
padding-top: 0; |
||||
} |
||||
|
||||
.modal-footer{ |
||||
border-top: none; |
||||
padding-right: 24px; |
||||
padding-bottom: 16px; |
||||
padding-left: 24px; |
||||
-webkit-justify-content: space-between; |
||||
justify-content: space-between; |
||||
|
||||
.btn{ |
||||
margin: 0; |
||||
padding-left: 16px; |
||||
padding-right: 16px; |
||||
width: auto; |
||||
|
||||
&:hover, |
||||
&focus{ |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
.table{ |
||||
|
||||
.radio, |
||||
.checkbox{ |
||||
position: relative; |
||||
height: 20px; |
||||
display: block; |
||||
width: 20px; |
||||
padding: 0px 0px; |
||||
margin: 0px 5px; |
||||
text-align: center; |
||||
|
||||
.icons{ |
||||
left: 5px; |
||||
} |
||||
} |
||||
> thead > tr > th, |
||||
> tbody > tr > th, |
||||
> tfoot > tr > th, |
||||
> thead > tr > td, |
||||
> tbody > tr > td, |
||||
> tfoot > tr > td{ |
||||
padding: 12px 8px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
> thead > tr > th{ |
||||
border-bottom-width: 1px; |
||||
font-size: $font-size-small; |
||||
text-transform: uppercase; |
||||
color: $dark-gray; |
||||
font-weight: $font-weight-normal; |
||||
padding-bottom: 5px; |
||||
border-top: none !important; |
||||
border-bottom: none; |
||||
text-align: left !important; |
||||
} |
||||
|
||||
.td-actions .btn{ |
||||
@include opacity(0.36); |
||||
|
||||
&.btn-xs{ |
||||
padding-left: 3px; |
||||
padding-right: 3px; |
||||
} |
||||
} |
||||
.td-actions{ |
||||
min-width: 90px; |
||||
} |
||||
|
||||
> tbody > tr{ |
||||
position: relative; |
||||
|
||||
&:hover{ |
||||
.td-actions .btn{ |
||||
@include opacity(1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
.btn:focus{ |
||||
box-shadow: none !important; |
||||
} |
||||
} |
||||
.table-upgrade{ |
||||
.table{ |
||||
tr{ |
||||
td{ |
||||
width: 100% |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
.tooltip { |
||||
display: block !important; |
||||
z-index: 10000; |
||||
|
||||
.tooltip-inner { |
||||
background: black; |
||||
color: white; |
||||
padding: 3px 6px 3px; |
||||
} |
||||
|
||||
.tooltip-arrow { |
||||
width: 0; |
||||
height: 0; |
||||
border-style: solid; |
||||
position: absolute; |
||||
margin: 5px; |
||||
border-color: black; |
||||
} |
||||
|
||||
&[x-placement^="top"] { |
||||
margin-bottom: 5px; |
||||
|
||||
.tooltip-arrow { |
||||
border-width: 5px 5px 0 5px; |
||||
border-left-color: transparent !important; |
||||
border-right-color: transparent !important; |
||||
border-bottom-color: transparent !important; |
||||
bottom: -5px; |
||||
left: calc(50% - 5px); |
||||
margin-top: 0; |
||||
margin-bottom: 0; |
||||
} |
||||
} |
||||
|
||||
&[x-placement^="bottom"] { |
||||
margin-top: 5px; |
||||
|
||||
.tooltip-arrow { |
||||
border-width: 0 5px 5px 5px; |
||||
border-left-color: transparent !important; |
||||
border-right-color: transparent !important; |
||||
border-top-color: transparent !important; |
||||
top: -5px; |
||||
left: calc(50% - 5px); |
||||
margin-top: 0; |
||||
margin-bottom: 0; |
||||
} |
||||
} |
||||
|
||||
&[x-placement^="right"] { |
||||
margin-left: 5px; |
||||
|
||||
.tooltip-arrow { |
||||
border-width: 5px 5px 5px 0; |
||||
border-left-color: transparent !important; |
||||
border-top-color: transparent !important; |
||||
border-bottom-color: transparent !important; |
||||
left: -5px; |
||||
top: calc(50% - 5px); |
||||
margin-left: 0; |
||||
margin-right: 0; |
||||
} |
||||
} |
||||
|
||||
&[x-placement^="left"] { |
||||
margin-right: 5px; |
||||
|
||||
.tooltip-arrow { |
||||
border-width: 5px 0 5px 5px; |
||||
border-top-color: transparent !important; |
||||
border-right-color: transparent !important; |
||||
border-bottom-color: transparent !important; |
||||
right: -5px; |
||||
top: calc(50% - 5px); |
||||
margin-left: 0; |
||||
margin-right: 0; |
||||
} |
||||
} |
||||
|
||||
&[aria-hidden='true'] { |
||||
visibility: hidden; |
||||
opacity: 0; |
||||
transition: opacity .15s, visibility .15s; |
||||
} |
||||
|
||||
&[aria-hidden='false'] { |
||||
visibility: visible; |
||||
opacity: 1; |
||||
transition: opacity .15s; |
||||
} |
||||
} |
@ -0,0 +1,90 @@
@@ -0,0 +1,90 @@
|
||||
/* Font Smoothing */ |
||||
body, |
||||
h1, .h1, |
||||
h2, .h2, |
||||
h3, .h3, |
||||
h4, .h4, |
||||
h5, .h5, |
||||
h6, .h6, |
||||
p, |
||||
.navbar, |
||||
.brand, |
||||
.btn-simple, |
||||
.alert, |
||||
a, |
||||
.td-name, |
||||
td, |
||||
button.close{ |
||||
-moz-osx-font-smoothing: grayscale; |
||||
-webkit-font-smoothing: antialiased; |
||||
font-family: "Roboto","Helvetica Neue",Arial,sans-serif; |
||||
font-weight: $font-weight-normal; |
||||
} |
||||
|
||||
h1, .h1, h2, .h2, h3, .h3, h4, .h4{ |
||||
font-weight: $font-weight-light; |
||||
margin: $margin-large-vertical 0 $margin-base-vertical; |
||||
} |
||||
|
||||
h1, .h1 { |
||||
font-size: $font-size-h1; |
||||
} |
||||
h2, .h2{ |
||||
font-size: $font-size-h2; |
||||
} |
||||
h3, .h3{ |
||||
font-size: $font-size-h3; |
||||
margin: 20px 0 10px; |
||||
} |
||||
h4, .h4{ |
||||
font-size: $font-size-h4; |
||||
line-height: 30px; |
||||
} |
||||
h5, .h5 { |
||||
font-size: $font-size-h5; |
||||
margin-bottom: 15px; |
||||
} |
||||
h6, .h6{ |
||||
font-size: $font-size-h6; |
||||
font-weight: $font-weight-bold; |
||||
text-transform: uppercase; |
||||
} |
||||
p{ |
||||
font-size: $font-paragraph; |
||||
line-height: $line-height-general; |
||||
} |
||||
|
||||
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { |
||||
color: $dark-gray; |
||||
font-weight: $font-weight-light; |
||||
line-height: $line-height-general; |
||||
} |
||||
|
||||
h1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small { |
||||
font-size: 60%; |
||||
} |
||||
|
||||
h1 .subtitle{ |
||||
display: block; |
||||
margin: 0 0 $margin-large-vertical; |
||||
} |
||||
|
||||
.text-muted{ |
||||
color: #9A9A9A; |
||||
} |
||||
.text-primary, .text-primary:hover{ |
||||
color: #1D62F0 !important; |
||||
} |
||||
.text-info, .text-info:hover{ |
||||
color: $info-color !important; |
||||
} |
||||
.text-success, .text-success:hover{ |
||||
color: $success-color !important; |
||||
} |
||||
.text-warning, .text-warning:hover{ |
||||
color: $warning-color !important; |
||||
} |
||||
.text-danger, .text-danger:hover{ |
||||
color: $danger-color !important; |
||||
} |
||||
|
@ -0,0 +1,265 @@
@@ -0,0 +1,265 @@
|
||||
//== Buttons |
||||
// |
||||
//## For each of Bootstrap's buttons, define text, background and border color. |
||||
|
||||
$none: 0 !default; |
||||
$border-thin: 1px !default; |
||||
$border-thick: 2px !default; |
||||
|
||||
$white-color: #FFFFFF !default; |
||||
$white-bg: #FFFFFF !default; |
||||
|
||||
$smoke-bg: #F5F5F5 !default; |
||||
|
||||
$black-bg: rgba(30,30,30,.97) !default; |
||||
|
||||
$black-color: #333333 !default; |
||||
$black-hr: #444444 !default; |
||||
|
||||
$light-gray: #E3E3E3 !default; |
||||
$medium-gray: #DDDDDD !default; |
||||
$medium-dark-gray: #AAAAAA !default; |
||||
$dark-gray: #9A9A9A !default; |
||||
|
||||
$transparent-bg: transparent !default; |
||||
|
||||
$default-color: #888888 !default; |
||||
$default-bg: #888888 !default; |
||||
$default-states-color: #777777 !default; |
||||
|
||||
$primary-color: #3472F7 !default; |
||||
$primary-bg: #3472F7 !default; |
||||
$primary-states-color: #1D62F0 !default; |
||||
|
||||
$success-color: #87CB16 !default; |
||||
$success-bg: #87CB16 !default; |
||||
$success-states-color: #049F0C !default; |
||||
|
||||
$info-color: #1DC7EA !default; |
||||
$info-bg: #1DC7EA !default; |
||||
$info-states-color: lighten($info-color, 8%) !default; |
||||
|
||||
$warning-color: #FF9500 !default; |
||||
$warning-bg: #FF9500 !default; |
||||
$warning-states-color: #ED8D00 !default; |
||||
|
||||
|
||||
$danger-color: #FF4A55 !default; |
||||
$danger-bg: #FF4A55 !default; |
||||
$danger-states-color: #EE2D20 !default; |
||||
|
||||
|
||||
|
||||
$link-disabled-color: #666666 !default; |
||||
|
||||
|
||||
/* light colors */ |
||||
$light-blue: rgba($primary-color, .2); |
||||
$light-azure: rgba($info-color, .2); |
||||
$light-green: rgba($success-color, .2); |
||||
$light-orange: rgba($warning-color, .2); |
||||
$light-red: rgba($danger-color, .2); |
||||
|
||||
|
||||
//== Components |
||||
// |
||||
|
||||
$padding-base-vertical: 8px !default; |
||||
$padding-base-horizontal: 16px !default; |
||||
|
||||
$padding-round-vertical: 9px !default; |
||||
$padding-round-horizontal: 18px !default; |
||||
|
||||
$padding-simple-vertical: 10px !default; |
||||
$padding-simple-horizontal: 18px !default; |
||||
|
||||
$padding-large-vertical: 14px !default; |
||||
$padding-large-horizontal: 30px !default; |
||||
|
||||
$padding-small-vertical: 5px !default; |
||||
$padding-small-horizontal: 10px !default; |
||||
|
||||
$padding-xs-vertical: 1px !default; |
||||
$padding-xs-horizontal: 5px !default; |
||||
|
||||
$padding-label-vertical: 2px !default; |
||||
$padding-label-horizontal: 12px !default; |
||||
|
||||
$margin-large-vertical: 30px !default; |
||||
$margin-base-vertical: 15px !default; |
||||
|
||||
$padding-zero: 0px !default; |
||||
|
||||
$margin-bottom: 0 0 10px 0 !default; |
||||
$border-radius-small: 3px !default; |
||||
$border-radius-base: 4px !default; |
||||
$border-radius-large: 6px !default; |
||||
$border-radius-extreme: 10px !default; |
||||
|
||||
$border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default; |
||||
$border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default; |
||||
|
||||
$btn-round-radius: 30px !default; |
||||
|
||||
$height-base: 40px !default; |
||||
|
||||
$font-size-base: 14px !default; |
||||
$font-size-small: 12px !default; |
||||
$font-size-medium: 16px !default; |
||||
$font-size-large: 18px !default; |
||||
$font-size-large-navbar: 20px !default; |
||||
|
||||
$font-size-h1: 52px !default; |
||||
$font-size-h2: 36px !default; |
||||
$font-size-h3: 28px !default; |
||||
$font-size-h4: 22px !default; |
||||
$font-size-h5: 16px !default; |
||||
$font-size-h6: 14px !default; |
||||
$font-paragraph: 16px !default; |
||||
$font-size-navbar: 16px !default; |
||||
$font-size-small: 12px !default; |
||||
|
||||
$font-weight-light: 300 !default; |
||||
$font-weight-normal: 400 !default; |
||||
$font-weight-semi: 500 !default; |
||||
$font-weight-bold: 600 !default; |
||||
|
||||
$line-height-general: 1.5 !default; |
||||
$line-height: 20px !default; |
||||
$line-height-lg: 54px !default; |
||||
|
||||
$sidebar-width: calc(100% - 260px) !default; |
||||
|
||||
|
||||
$border-radius-top: 10px 10px 0 0 !default; |
||||
$border-radius-bottom: 0 0 10px 10px !default; |
||||
|
||||
$dropdown-shadow: 1px 2px 3px rgba(0, 0, 0, 0.125); |
||||
|
||||
$general-transition-time: 300ms !default; |
||||
|
||||
$slow-transition-time: 370ms !default; |
||||
$dropdown-coordinates: 29px -50px !default; |
||||
|
||||
$fast-transition-time: 150ms !default; |
||||
|
||||
$ultra-fast-transition-time: 100ms !default; |
||||
|
||||
$select-coordinates: 50% -40px !default; |
||||
|
||||
$transition-linear: linear !default; |
||||
$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default; |
||||
$transition-ease: ease 0s; |
||||
$transition-ease-in: ease-in !default; |
||||
$transition-ease-out: ease-out !default; |
||||
|
||||
|
||||
$navbar-padding-a: 10px 15px; |
||||
$navbar-margin-a: 10px 3px; |
||||
|
||||
$padding-social-a: 10px 5px; |
||||
|
||||
$navbar-margin-a-btn: 15px 3px; |
||||
$navbar-margin-a-btn-round: 16px 3px; |
||||
|
||||
$navbar-padding-a-icons: 6px 15px; |
||||
$navbar-margin-a-icons: 6px 3px; |
||||
|
||||
$navbar-padding-brand: 15px 15px; |
||||
$navbar-margin-brand: 5px 0px; |
||||
|
||||
$navbar-margin-brand-icons: 12px auto; |
||||
|
||||
$navbar-margin-btn: 15px 3px; |
||||
|
||||
$height-icon: 64px !default; |
||||
$width-icon: 64px !default; |
||||
$padding-icon: 12px !default; |
||||
$border-radius-icon: 15px !default; |
||||
|
||||
$size-icon: 64px; |
||||
$size-icon-sm: 32px; |
||||
|
||||
|
||||
$height-icon-sm: 32px; |
||||
$width-icon-sm: 32px; |
||||
$padding-icon-sm: 4px; |
||||
$border-radius-icon-sm: 7px; |
||||
|
||||
$height-icon-message: 40px; |
||||
$width-icon-message: 40px; |
||||
|
||||
$height-icon-message-sm: 20px; |
||||
$width-icon-message-sm: 20px; |
||||
|
||||
$default-color-top: #d9d9d9 !default; |
||||
$default-color-bottom: #909297 !default; |
||||
|
||||
$blue-color-top: #40B782; |
||||
$blue-color-bottom: #40B782; |
||||
|
||||
$azure-color-top: #45c0fd; |
||||
$azure-color-bottom: #4091ff; |
||||
|
||||
$green-color-top: #a1eb3a; |
||||
$green-color-bottom: #6dc030; |
||||
|
||||
$orange-color-top: #ffb33b; |
||||
$orange-color-bottom: #ff5221; |
||||
|
||||
$red-color-top: #ff3b30; |
||||
$red-color-bottom: #bb0502; |
||||
|
||||
$purple-color-top: #df55e1; |
||||
$purple-color-bottom: #943bea; |
||||
|
||||
$pink-color-top: #ff2a63; |
||||
$pink-color-bottom: #ff2e2e; |
||||
|
||||
$black-color-top: #787878; |
||||
$black-color-bottom: #343434; |
||||
|
||||
$black-color-filter-top: #292929; |
||||
$black-color-filter-bottom: #0e0e0e; |
||||
|
||||
$social-facebook: #3b5998; |
||||
$social-twitter: #55acee; |
||||
$social-pinterest: #cc2127; |
||||
$social-google: #dd4b39; |
||||
$social-linkedin: #0976b4; |
||||
$social-dribbble: #ea4c89; |
||||
$social-github: #333333; |
||||
$social-youtube: #e52d27; |
||||
$social-stumbleupon: #eb4924; |
||||
$social-reddit: #ff4500; |
||||
$social-tumblr: #35465c; |
||||
$social-behance: #1769ff; |
||||
|
||||
|
||||
$filter-blue: darken($primary-color, 10%); |
||||
$filter-azure: darken($info-color, 10%); |
||||
$filter-green: darken($success-color, 10%); |
||||
$filter-orange: darken($warning-color, 10%); |
||||
$filter-red: darken($danger-color, 10%); |
||||
|
||||
|
||||
$new-blue: #1DC7EA; |
||||
$new-purple: #9368E9; |
||||
$new-red: #FB404B; |
||||
$new-green: #87CB16; |
||||
$new-orange: #FFA534; |
||||
$new-dark-blue: #35495E; |
||||
$new-black: #5e5e5e; |
||||
|
||||
$topbar-x: topbar-x !default; |
||||
$topbar-back: topbar-back !default; |
||||
$bottombar-x: bottombar-x !default; |
||||
$bottombar-back: bottombar-back !default; |
||||
|
||||
|
||||
$white-navbar: rgba(#FFFFFF, .96); |
||||
$blue-navbar: lighten($new-dark-blue, 10%); |
||||
$azure-navbar: lighten($new-blue, 15%); |
||||
$green-navbar: lighten($new-green, 10%); |
||||
$orange-navbar: lighten($new-orange, 10%); |
||||
$red-navbar: lighten($new-red, 10%); |
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
// Mixin for generating new styles |
||||
@mixin btn-styles($btn-color, $btn-states-color) { |
||||
border-color: $btn-color; |
||||
color: $btn-color; |
||||
|
||||
&:hover, |
||||
&:focus, |
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle { |
||||
background-color: $transparent-bg; |
||||
color: $btn-states-color; |
||||
border-color: $btn-states-color; |
||||
} |
||||
|
||||
&.disabled, |
||||
&:disabled, |
||||
&[disabled], |
||||
fieldset[disabled] & { |
||||
&, |
||||
&:hover, |
||||
&:focus, |
||||
&.focus, |
||||
&:active, |
||||
&.active { |
||||
background-color: $transparent-bg; |
||||
border-color: $btn-color; |
||||
} |
||||
} |
||||
|
||||
|
||||
&.btn-fill { |
||||
color: $white-color; |
||||
background-color: $btn-color; |
||||
@include opacity(1); |
||||
|
||||
&:hover, |
||||
&:focus, |
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle{ |
||||
background-color: $btn-states-color; |
||||
color: $white-color; |
||||
} |
||||
|
||||
.caret{ |
||||
border-top-color: $white-color; |
||||
} |
||||
} |
||||
|
||||
.caret{ |
||||
border-top-color: $btn-color; |
||||
} |
||||
} |
||||
|
||||
|
||||
@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){ |
||||
font-size: $font-size; |
||||
border-radius: $border; |
||||
padding: $padding-vertical $padding-horizontal; |
||||
|
||||
&.btn-round{ |
||||
padding: $padding-vertical + 1 $padding-horizontal; |
||||
} |
||||
|
||||
&.btn-simple{ |
||||
padding: $padding-vertical + 2 $padding-horizontal; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
@mixin filter($color){ |
||||
@if $color == #FFFFFF{ |
||||
background-color: rgba($color,.91); |
||||
} @else { |
||||
background-color: rgba($color,.69); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,85 @@
@@ -0,0 +1,85 @@
|
||||
// Scales for responsive SVG containers |
||||
$ct-scales: ((1), (15/16), (8/9), (5/6), (4/5), (3/4), (2/3), (5/8), (1/1.618), (3/5), (9/16), (8/15), (1/2), (2/5), (3/8), (1/3), (1/4)) !default; |
||||
$ct-scales-names: (ct-square, ct-minor-second, ct-major-second, ct-minor-third, ct-major-third, ct-perfect-fourth, ct-perfect-fifth, ct-minor-sixth, ct-golden-section, ct-major-sixth, ct-minor-seventh, ct-major-seventh, ct-octave, ct-major-tenth, ct-major-eleventh, ct-major-twelfth, ct-double-octave) !default; |
||||
|
||||
// Class names to be used when generating CSS |
||||
$ct-class-chart: ct-chart !default; |
||||
$ct-class-chart-line: ct-chart-line !default; |
||||
$ct-class-chart-bar: ct-chart-bar !default; |
||||
$ct-class-horizontal-bars: ct-horizontal-bars !default; |
||||
$ct-class-chart-pie: ct-chart-pie !default; |
||||
$ct-class-chart-donut: ct-chart-donut !default; |
||||
$ct-class-label: ct-label !default; |
||||
$ct-class-series: ct-series !default; |
||||
$ct-class-line: ct-line !default; |
||||
$ct-class-point: ct-point !default; |
||||
$ct-class-area: ct-area !default; |
||||
$ct-class-bar: ct-bar !default; |
||||
$ct-class-slice-pie: ct-slice-pie !default; |
||||
$ct-class-slice-donut: ct-slice-donut !default; |
||||
$ct-class-grid: ct-grid !default; |
||||
$ct-class-vertical: ct-vertical !default; |
||||
$ct-class-horizontal: ct-horizontal !default; |
||||
$ct-class-start: ct-start !default; |
||||
$ct-class-end: ct-end !default; |
||||
|
||||
// Container ratio |
||||
$ct-container-ratio: (1/1.618) !default; |
||||
|
||||
// Text styles for labels |
||||
$ct-text-color: rgba(0, 0, 0, 0.4) !default; |
||||
$ct-text-size: 1.3rem !default; |
||||
$ct-text-align: flex-start !default; |
||||
$ct-text-justify: flex-start !default; |
||||
$ct-text-line-height: 1; |
||||
|
||||
// Grid styles |
||||
$ct-grid-color: rgba(0, 0, 0, 0.2) !default; |
||||
$ct-grid-dasharray: 2px !default; |
||||
$ct-grid-width: 1px !default; |
||||
|
||||
// Line chart properties |
||||
$ct-line-width: 3px !default; |
||||
$ct-line-dasharray: false !default; |
||||
$ct-point-size: 8px !default; |
||||
// Line chart point, can be either round or square |
||||
$ct-point-shape: round !default; |
||||
// Area fill transparency between 0 and 1 |
||||
$ct-area-opacity: 0.8 !default; |
||||
|
||||
// Bar chart bar width |
||||
$ct-bar-width: 10px !default; |
||||
|
||||
// Donut width (If donut width is to big it can cause issues where the shape gets distorted) |
||||
$ct-donut-width: 60px !default; |
||||
|
||||
// If set to true it will include the default classes and generate CSS output. If you're planning to use the mixins you |
||||
// should set this property to false |
||||
$ct-include-classes: true !default; |
||||
|
||||
// If this is set to true the CSS will contain colored series. You can extend or change the color with the |
||||
// properties below |
||||
$ct-include-colored-series: $ct-include-classes !default; |
||||
|
||||
// If set to true this will include all responsive container variations using the scales defined at the top of the script |
||||
$ct-include-alternative-responsive-containers: $ct-include-classes !default; |
||||
|
||||
// Series names and colors. This can be extended or customized as desired. Just add more series and colors. |
||||
$ct-series-names: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) !default; |
||||
$ct-series-colors: ( |
||||
$new-blue, |
||||
$new-red, |
||||
$new-orange, |
||||
$new-purple, |
||||
$new-green, |
||||
$new-dark-blue, |
||||
$new-black, |
||||
$social-google, |
||||
$social-tumblr, |
||||
$social-youtube, |
||||
$social-twitter, |
||||
$social-pinterest, |
||||
$social-behance, |
||||
#6188e2, |
||||
#a748ca |
||||
) !default; |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
@mixin icon-background ($icon-url){ |
||||
background-image : url($icon-url); |
||||
|
||||
} |
||||
|
||||
@mixin icon-shape ($size, $padding, $border-radius) { |
||||
height: $size; |
||||
width: $size; |
||||
padding: $padding; |
||||
border-radius: $border-radius; |
||||
display: inline-table; |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
@mixin input-size($padding-vertical, $padding-horizontal, $height){ |
||||
padding: $padding-vertical $padding-horizontal; |
||||
height: $height; |
||||
} |
||||
|
||||
@mixin placeholder($color, $opacity){ |
||||
color: $color; |
||||
@include opacity(1); |
||||
} |
||||
|
||||
@mixin light-form(){ |
||||
border-radius: 0; |
||||
border:0; |
||||
padding: 0; |
||||
background-color: transparent; |
||||
|
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
@mixin label-style(){ |
||||
padding: $padding-label-vertical $padding-label-horizontal; |
||||
border: 1px solid $default-color; |
||||
border-radius: $border-radius-small; |
||||
color: $default-color; |
||||
font-weight: $font-weight-semi; |
||||
font-size: $font-size-small; |
||||
text-transform: uppercase; |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
@mixin label-color($color){ |
||||
border-color: $color; |
||||
color: $color; |
||||
} |
||||
@mixin label-color-fill($color){ |
||||
border-color: $color; |
||||
color: $white-color; |
||||
background-color: $color; |
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
$prefixes: ('', '-moz-', '-webkit-', '-ms-') !default; |
||||
|
||||
@mixin circle-animation(){ |
||||
@for $i from 0 to length($prefixes) { |
||||
@include circle-animation-details(nth($prefixes, $i + 1)); |
||||
} |
||||
} |
||||
|
||||
@mixin circle-animation-details($name){ |
||||
#{$name}animation-name: spin; |
||||
#{$name}animation-duration: 1250ms; |
||||
#{$name}animation-iteration-count: infinite; |
||||
#{$name}animation-timing-function: linear; |
||||
|
||||
} |
||||
@keyframes spin { |
||||
from { transform:rotate(0deg); } |
||||
to { transform:rotate(360deg); } |
||||
} |
||||
|
||||
@-webkit-keyframes spin { |
||||
from { -webkit-transform: rotate(0deg); } |
||||
to { -webkit-transform: rotate(360deg); } |
||||
} |
||||
|
||||
@-moz-keyframes spin { |
||||
from { -moz-transform: rotate(0deg); } |
||||
to { -moz-transform: rotate(360deg); } |
||||
} |
||||
|
||||
@-ms-keyframes spin { |
||||
from { -ms-transform: rotate(0deg); } |
||||
to { -ms-transform: rotate(360deg); } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
@mixin navbar-color($color){ |
||||
background-color: $color; |
||||
} |
||||
|
||||
@mixin center-item(){ |
||||
left: 0; |
||||
right: 0; |
||||
margin-right: auto; |
||||
margin-left: auto; |
||||
position: absolute; |
||||
} |
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
@mixin social-buttons-color ($color){ |
||||
|
||||
border-color: $color; |
||||
color: $color; |
||||
|
||||
&:hover, |
||||
&:focus, |
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle { |
||||
background-color: $transparent-bg; |
||||
color: $color; |
||||
border-color: $color; |
||||
opacity: 1; |
||||
} |
||||
|
||||
&:disabled, |
||||
&[disabled], |
||||
&.disabled { |
||||
background-color: $transparent-bg; |
||||
border-color: $color; |
||||
} |
||||
|
||||
&.btn-fill { |
||||
color: $white-color; |
||||
background-color: $color; |
||||
opacity: 0.9; |
||||
|
||||
&:hover, |
||||
&:focus, |
||||
&:active, |
||||
&.active, |
||||
.open > &.dropdown-toggle{ |
||||
background-color: $color; |
||||
color: $white-color; |
||||
opacity: 1; |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
@mixin pill-style($color){ |
||||
border: 1px solid $color; |
||||
color: $color; |
||||
} |
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
// Opacity |
||||
|
||||
@mixin opacity($opacity) { |
||||
opacity: $opacity; |
||||
// IE8 filter |
||||
$opacity-ie: ($opacity * 100); |
||||
filter: #{alpha(opacity=$opacity-ie)}; |
||||
} |
||||
|
||||
@mixin black-filter($opacity){ |
||||
top: 0; |
||||
left: 0; |
||||
height: 100%; |
||||
width: 100%; |
||||
position: absolute; |
||||
background-color: rgba(17,17,17,$opacity); |
||||
display: block; |
||||
content: ""; |
||||
z-index: 1; |
||||
} |
@ -0,0 +1,211 @@
@@ -0,0 +1,211 @@
|
||||
// User select |
||||
// For selecting text on the page |
||||
|
||||
@mixin user-select($select) { |
||||
-webkit-user-select: $select; |
||||
-moz-user-select: $select; |
||||
-ms-user-select: $select; // IE10+ |
||||
user-select: $select; |
||||
} |
||||
|
||||
@mixin box-shadow($shadow...) { |
||||
-webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 |
||||
box-shadow: $shadow; |
||||
} |
||||
|
||||
// Box sizing |
||||
@mixin box-sizing($boxmodel) { |
||||
-webkit-box-sizing: $boxmodel; |
||||
-moz-box-sizing: $boxmodel; |
||||
box-sizing: $boxmodel; |
||||
} |
||||
|
||||
|
||||
@mixin transition($time, $type){ |
||||
-webkit-transition: all $time $type; |
||||
-moz-transition: all $time $type; |
||||
-o-transition: all $time $type; |
||||
-ms-transition: all $time $type; |
||||
transition: all $time $type; |
||||
} |
||||
|
||||
@mixin transform-scale($value){ |
||||
-webkit-transform: scale($value); |
||||
-moz-transform: scale($value); |
||||
-o-transform: scale($value); |
||||
-ms-transform: scale($value); |
||||
transform: scale($value); |
||||
} |
||||
|
||||
@mixin transform-translate-x($value){ |
||||
-webkit-transform: translate3d($value, 0, 0); |
||||
-moz-transform: translate3d($value, 0, 0); |
||||
-o-transform: translate3d($value, 0, 0); |
||||
-ms-transform: translate3d($value, 0, 0); |
||||
transform: translate3d($value, 0, 0); |
||||
} |
||||
|
||||
@mixin transform-translate-3d($value){ |
||||
-webkit-transform: translate3d($value, 0, 0); |
||||
-moz-transform: translate3d($value, 0, 0); |
||||
-o-transform: translate3d($value, 0, 0); |
||||
-ms-transform: translate3d($value, 0, 0); |
||||
transform: translate3d($value, 0, 0) !important; |
||||
} |
||||
|
||||
@mixin transform-translate-y-dropdown($value){ |
||||
-webkit-transform: translate3d(0, $value, 0) !important; |
||||
-moz-transform: translate3d(0, $value, 0) !important; |
||||
-o-transform: translate3d(0, $value, 0) !important; |
||||
-ms-transform: translate3d(0, $value, 0) !important; |
||||
transform: translate3d(0, $value, 0) !important; |
||||
} |
||||
|
||||
@mixin transform-translate-3d-0($value){ |
||||
-webkit-transform: translate3d(0, $value, 0) !important; |
||||
-moz-transform: translate3d(0, $value, 0) !important; |
||||
-o-transform: translate3d(0, $value, 0) !important; |
||||
-ms-transform: translate3d(0, $value, 0) !important; |
||||
transform: translate3d(0, $value, 0) !important; |
||||
} |
||||
|
||||
@mixin transform-origin($coordinates){ |
||||
-webkit-transform-origin: $coordinates; |
||||
-moz-transform-origin: $coordinates; |
||||
-o-transform-origin: $coordinates; |
||||
-ms-transform-origin: $coordinates; |
||||
transform-origin: $coordinates; |
||||
} |
||||
|
||||
@mixin icon-gradient ($top-color, $bottom-color){ |
||||
background: $top-color; |
||||
background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%); |
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color)); |
||||
background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%); |
||||
background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%); |
||||
background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%); |
||||
background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%); |
||||
background-size: 150% 150%; |
||||
} |
||||
|
||||
@mixin radial-gradient($extern-color, $center-color){ |
||||
background: $extern-color; |
||||
background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */ |
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */ |
||||
background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */ |
||||
background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */ |
||||
background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */ |
||||
background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */ |
||||
background-size: 550% 450%; |
||||
} |
||||
|
||||
@mixin vertical-align { |
||||
position: relative; |
||||
top: 50%; |
||||
-webkit-transform: translateY(-50%); |
||||
-ms-transform: translateY(-50%); |
||||
transform: translateY(-50%); |
||||
} |
||||
|
||||
@mixin rotate-180(){ |
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); |
||||
-webkit-transform: rotate(180deg); |
||||
-ms-transform: rotate(180deg); |
||||
transform: rotate(180deg); |
||||
} |
||||
|
||||
@mixin bar-animation($type){ |
||||
-webkit-animation: $type 500ms linear 0s; |
||||
-moz-animation: $type 500ms linear 0s; |
||||
animation: $type 500ms 0s; |
||||
-webkit-animation-fill-mode: forwards; |
||||
-moz-animation-fill-mode: forwards; |
||||
animation-fill-mode: forwards; |
||||
} |
||||
|
||||
@mixin topbar-x-rotation(){ |
||||
@keyframes topbar-x { |
||||
0% {top: 0px; transform: rotate(0deg); } |
||||
45% {top: 6px; transform: rotate(145deg); } |
||||
75% {transform: rotate(130deg); } |
||||
100% {transform: rotate(135deg); } |
||||
} |
||||
@-webkit-keyframes topbar-x { |
||||
0% {top: 0px; -webkit-transform: rotate(0deg); } |
||||
45% {top: 6px; -webkit-transform: rotate(145deg); } |
||||
75% {-webkit-transform: rotate(130deg); } |
||||
100% { -webkit-transform: rotate(135deg); } |
||||
} |
||||
@-moz-keyframes topbar-x { |
||||
0% {top: 0px; -moz-transform: rotate(0deg); } |
||||
45% {top: 6px; -moz-transform: rotate(145deg); } |
||||
75% {-moz-transform: rotate(130deg); } |
||||
100% { -moz-transform: rotate(135deg); } |
||||
} |
||||
} |
||||
|
||||
@mixin topbar-back-rotation(){ |
||||
@keyframes topbar-back { |
||||
0% { top: 6px; transform: rotate(135deg); } |
||||
45% { transform: rotate(-10deg); } |
||||
75% { transform: rotate(5deg); } |
||||
100% { top: 0px; transform: rotate(0); } |
||||
} |
||||
|
||||
@-webkit-keyframes topbar-back { |
||||
0% { top: 6px; -webkit-transform: rotate(135deg); } |
||||
45% { -webkit-transform: rotate(-10deg); } |
||||
75% { -webkit-transform: rotate(5deg); } |
||||
100% { top: 0px; -webkit-transform: rotate(0); } |
||||
} |
||||
|
||||
@-moz-keyframes topbar-back { |
||||
0% { top: 6px; -moz-transform: rotate(135deg); } |
||||
45% { -moz-transform: rotate(-10deg); } |
||||
75% { -moz-transform: rotate(5deg); } |
||||
100% { top: 0px; -moz-transform: rotate(0); } |
||||
} |
||||
} |
||||
|
||||
@mixin bottombar-x-rotation(){ |
||||
@keyframes bottombar-x { |
||||
0% {bottom: 0px; transform: rotate(0deg);} |
||||
45% {bottom: 6px; transform: rotate(-145deg);} |
||||
75% {transform: rotate(-130deg);} |
||||
100% {transform: rotate(-135deg);} |
||||
} |
||||
@-webkit-keyframes bottombar-x { |
||||
0% {bottom: 0px; -webkit-transform: rotate(0deg);} |
||||
45% {bottom: 6px; -webkit-transform: rotate(-145deg);} |
||||
75% {-webkit-transform: rotate(-130deg);} |
||||
100% {-webkit-transform: rotate(-135deg);} |
||||
} |
||||
@-moz-keyframes bottombar-x { |
||||
0% {bottom: 0px; -moz-transform: rotate(0deg);} |
||||
45% {bottom: 6px; -moz-transform: rotate(-145deg);} |
||||
75% {-moz-transform: rotate(-130deg);} |
||||
100% {-moz-transform: rotate(-135deg);} |
||||
} |
||||
} |
||||
|
||||
@mixin bottombar-back-rotation{ |
||||
@keyframes bottombar-back { |
||||
0% { bottom: 6px;transform: rotate(-135deg);} |
||||
45% { transform: rotate(10deg);} |
||||
75% { transform: rotate(-5deg);} |
||||
100% { bottom: 0px;transform: rotate(0);} |
||||
} |
||||
@-webkit-keyframes bottombar-back { |
||||
0% {bottom: 6px;-webkit-transform: rotate(-135deg);} |
||||
45% {-webkit-transform: rotate(10deg);} |
||||
75% {-webkit-transform: rotate(-5deg);} |
||||
100% {bottom: 0px;-webkit-transform: rotate(0);} |
||||
} |
||||
@-moz-keyframes bottombar-back { |
||||
0% {bottom: 6px;-moz-transform: rotate(-135deg);} |
||||
45% {-moz-transform: rotate(10deg);} |
||||
75% {-moz-transform: rotate(-5deg);} |
||||
100% {bottom: 0px;-moz-transform: rotate(0);} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,227 @@
@@ -0,0 +1,227 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// This file was modified by Creative Tim to keep only the animation that we need for Bootstrap Notify |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@charset "UTF-8"; |
||||
|
||||
/*! |
||||
Animate.css - http://daneden.me/animate |
||||
Licensed under the MIT license - http://opensource.org/licenses/MIT |
||||
|
||||
Copyright (c) 2015 Daniel Eden |
||||
*/ |
||||
|
||||
.animated { |
||||
-webkit-animation-duration: 1s; |
||||
animation-duration: 1s; |
||||
-webkit-animation-fill-mode: both; |
||||
animation-fill-mode: both; |
||||
} |
||||
|
||||
.animated.infinite { |
||||
-webkit-animation-iteration-count: infinite; |
||||
animation-iteration-count: infinite; |
||||
} |
||||
|
||||
.animated.hinge { |
||||
-webkit-animation-duration: 2s; |
||||
animation-duration: 2s; |
||||
} |
||||
|
||||
.animated.bounceIn, |
||||
.animated.bounceOut { |
||||
-webkit-animation-duration: .75s; |
||||
animation-duration: .75s; |
||||
} |
||||
|
||||
.animated.flipOutX, |
||||
.animated.flipOutY { |
||||
-webkit-animation-duration: .75s; |
||||
animation-duration: .75s; |
||||
} |
||||
|
||||
@-webkit-keyframes shake { |
||||
from, to { |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
|
||||
10%, 30%, 50%, 70%, 90% { |
||||
-webkit-transform: translate3d(-10px, 0, 0); |
||||
transform: translate3d(-10px, 0, 0); |
||||
} |
||||
|
||||
20%, 40%, 60%, 80% { |
||||
-webkit-transform: translate3d(10px, 0, 0); |
||||
transform: translate3d(10px, 0, 0); |
||||
} |
||||
} |
||||
|
||||
@keyframes shake { |
||||
from, to { |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
|
||||
10%, 30%, 50%, 70%, 90% { |
||||
-webkit-transform: translate3d(-10px, 0, 0); |
||||
transform: translate3d(-10px, 0, 0); |
||||
} |
||||
|
||||
20%, 40%, 60%, 80% { |
||||
-webkit-transform: translate3d(10px, 0, 0); |
||||
transform: translate3d(10px, 0, 0); |
||||
} |
||||
} |
||||
|
||||
.shake { |
||||
-webkit-animation-name: shake; |
||||
animation-name: shake; |
||||
} |
||||
|
||||
|
||||
|
||||
@-webkit-keyframes fadeInDown { |
||||
from { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -100%, 0); |
||||
transform: translate3d(0, -100%, 0); |
||||
} |
||||
|
||||
to { |
||||
opacity: 1; |
||||
-webkit-transform: none; |
||||
transform: none; |
||||
} |
||||
} |
||||
|
||||
@keyframes fadeInDown { |
||||
from { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -100%, 0); |
||||
transform: translate3d(0, -100%, 0); |
||||
} |
||||
|
||||
to { |
||||
opacity: 1; |
||||
-webkit-transform: none; |
||||
transform: none; |
||||
} |
||||
} |
||||
|
||||
.fadeInDown { |
||||
-webkit-animation-name: fadeInDown; |
||||
animation-name: fadeInDown; |
||||
} |
||||
|
||||
|
||||
@-webkit-keyframes fadeOut { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
} |
||||
} |
||||
|
||||
@keyframes fadeOut { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
} |
||||
} |
||||
|
||||
.fadeOut { |
||||
-webkit-animation-name: fadeOut; |
||||
animation-name: fadeOut; |
||||
} |
||||
|
||||
@-webkit-keyframes fadeOutDown { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, 100%, 0); |
||||
transform: translate3d(0, 100%, 0); |
||||
} |
||||
} |
||||
|
||||
@keyframes fadeOutDown { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, 100%, 0); |
||||
transform: translate3d(0, 100%, 0); |
||||
} |
||||
} |
||||
|
||||
.fadeOutDown { |
||||
-webkit-animation-name: fadeOutDown; |
||||
animation-name: fadeOutDown; |
||||
} |
||||
|
||||
@-webkit-keyframes fadeOutUp { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -100%, 0); |
||||
transform: translate3d(0, -100%, 0); |
||||
} |
||||
} |
||||
|
||||
@keyframes fadeOutUp { |
||||
from { |
||||
opacity: 1; |
||||
} |
||||
|
||||
to { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -100%, 0); |
||||
transform: translate3d(0, -100%, 0); |
||||
} |
||||
} |
||||
|
||||
.fadeOutUp { |
||||
-webkit-animation-name: fadeOutUp; |
||||
animation-name: fadeOutUp; |
||||
} |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
/*! |
||||
========================================================= |
||||
* Light Bootstrap Dashboard Vue - v1.0.0 (Bootstrap 4) |
||||
========================================================= |
||||
* Product Page: http://www.creative-tim.com/product/light-bootstrap-dashboard |
||||
* Copyright 2017 Creative Tim (http://www.creative-tim.com) |
||||
* Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard/blob/master/LICENSE.md) |
||||
========================================================= |
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. |
||||
*/ |
||||
@import "lbd/variables"; |
||||
@import "lbd/mixins"; |
||||
|
||||
@import "lbd/typography"; |
||||
|
||||
// Core CSS |
||||
@import "lbd/misc"; |
||||
@import "lbd/sidebar-and-main-panel"; |
||||
@import "lbd/buttons"; |
||||
@import "lbd/inputs"; |
||||
|
||||
@import "lbd/alerts"; |
||||
@import "lbd/tables"; |
||||
@import "lbd/modal"; |
||||
|
||||
@import "lbd/checkbox-radio-switch"; |
||||
@import "lbd/navbars"; |
||||
@import "lbd/footers"; |
||||
|
||||
// Fancy Stuff |
||||
@import "lbd/plugins/animate"; |
||||
@import "lbd/dropdown"; |
||||
@import "lbd/cards"; |
||||
@import "lbd/chartist"; |
||||
@import "lbd/tooltip"; |
||||
@import "lbd/responsive"; |
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
<template> |
||||
<transition name="fade" mode="out-in"> |
||||
<router-view></router-view> |
||||
</transition> |
||||
</template> |
||||
<script> |
||||
export default {} |
||||
</script> |
||||
<style> |
||||
.fade-enter-active, |
||||
.fade-leave-active { |
||||
transition: opacity .1s |
||||
} |
||||
|
||||
.fade-enter, |
||||
.fade-leave-to |
||||
/* .fade-leave-active in <2.1.8 */ |
||||
|
||||
{ |
||||
opacity: 0 |
||||
} |
||||
</style> |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
<template> |
||||
<footer class="footer"> |
||||
<div class="container-fluid"> |
||||
<nav> |
||||
<ul class="footer-menu"> |
||||
<li> |
||||
<router-link :to="{path:'/admin'}">Dashboard</router-link> |
||||
</li> |
||||
</ul> |
||||
</nav> |
||||
<div class="copyright text-center"> |
||||
© Coded with |
||||
<i class="fa fa-heart heart"></i> by |
||||
<a href="https://github.com/cristijora" target="_blank">Cristi Jora</a>. |
||||
Designed by <a href="https://www.creative-tim.com/?ref=pdf-vuejs" target="_blank">Creative Tim</a>. |
||||
</div> |
||||
</div> |
||||
</footer> |
||||
</template> |
||||
<script> |
||||
export default {} |
||||
|
||||
</script> |
||||
<style> |
||||
|
||||
</style> |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
<template> |
||||
<div class="wrapper"> |
||||
<side-bar> |
||||
<mobile-menu slot="content"></mobile-menu> |
||||
<sidebar-link to="/ucp/overview"> |
||||
<i class="fa fa-line-chart"></i> |
||||
<p>Dashboard</p> |
||||
</sidebar-link> |
||||
<sidebar-link to="/ucp/streams"> |
||||
<i class="fa fa-signal"></i> |
||||
<p>My Streams</p> |
||||
</sidebar-link> |
||||
</side-bar> |
||||
<div class="main-panel"> |
||||
<top-navbar></top-navbar> |
||||
|
||||
<dashboard-content @click="toggleSidebar"> |
||||
|
||||
</dashboard-content> |
||||
|
||||
<content-footer></content-footer> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<style lang="scss"> |
||||
|
||||
</style> |
||||
<script> |
||||
import TopNavbar from './TopNavbar.vue' |
||||
import ContentFooter from './ContentFooter.vue' |
||||
import DashboardContent from './Content.vue' |
||||
import MobileMenu from './MobileMenu.vue' |
||||
|
||||
export default { |
||||
components: { |
||||
TopNavbar, |
||||
ContentFooter, |
||||
DashboardContent, |
||||
MobileMenu |
||||
}, |
||||
methods: { |
||||
toggleSidebar() { |
||||
if (this.$sidebar.showSidebar) { |
||||
this.$sidebar.displaySidebar(false) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
</script> |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue