Convert color schema, begin migrating old classes (finishes grey & red)

This commit is contained in:
Dane Everitt 2019-02-09 14:32:18 -08:00
parent 6c7a5d5bb9
commit 32b43cff9a
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
35 changed files with 186 additions and 166 deletions

View file

@ -10,7 +10,7 @@
<div id="pterodactyl">
<router-view></router-view>
<div class="w-full m-auto mt-0 container">
<p class="text-right text-grey-dark text-xs">
<p class="text-right text-neutral-600 text-xs">
</p>
</div>
</div>

View file

@ -69,7 +69,7 @@ export default Vue.component('forgot-password', {
v-on:input="updateEmail($event)"
/>
<label for="grid-email" id="grid-email-label">{{ $t('strings.email') }}</label>
<p class="text-grey-darker text-xs">{{ $t('auth.forgot_password.label_help') }}</p>
<p class="text-neutral-800 text-xs">{{ $t('auth.forgot_password.label_help') }}</p>
</div>
</div>
<div>
@ -81,7 +81,7 @@ export default Vue.component('forgot-password', {
</button>
</div>
<div class="pt-6 text-center">
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
<router-link class="text-xs textneutral-500stracking-wide no-underline uppercase hover:text-neutral-600"
aria-label="Go to login"
:to="{ name: 'login' }"
>

View file

@ -102,7 +102,7 @@ export default Vue.component('login-form', {
</button>
</div>
<div class="pt-6 text-center">
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark" aria-label="Forgot password"
<router-link class="text-xs textneutral-500stracking-wide no-underline uppercase hover:text-neutral-600" aria-label="Forgot password"
:to="{ name: 'forgot-password' }">
{{ $t('auth.forgot_password.label') }}
</router-link>

View file

@ -88,7 +88,7 @@ export default Vue.component('reset-password', {
v-model="password"
/>
<label for="grid-password">{{ $t('strings.password') }}</label>
<p class="text-grey-darker text-xs">{{ $t('auth.password_requirements') }}</p>
<p class="text-neutral-800 text-xs">{{ $t('auth.password_requirements') }}</p>
</div>
</div>
<div class="flex flex-wrap -mx-3 mb-6">
@ -110,7 +110,7 @@ export default Vue.component('reset-password', {
</button>
</div>
<div class="pt-6 text-center">
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
<router-link class="text-xs textneutral-500stracking-wide no-underline uppercase hover:text-neutral-600"
:to="{ name: 'login' }"
>
{{ $t('auth.go_to_login') }}

View file

@ -60,7 +60,7 @@ export default Vue.component('two-factor-form', {
v-model="code"
/>
<label for="grid-code">{{ $t('auth.two_factor.label') }}</label>
<p class="text-grey-darker text-xs">{{ $t('auth.two_factor.label_help') }}</p>
<p class="text-neutral-800 text-xs">{{ $t('auth.two_factor.label_help') }}</p>
</div>
</div>
<div>
@ -69,7 +69,7 @@ export default Vue.component('two-factor-form', {
</button>
</div>
<div class="pt-6 text-center">
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
<router-link class="text-xs textneutral-500stracking-wide no-underline uppercase hover:text-neutral-600"
:to="{ name: 'login' }"
>
Back to Login

View file

@ -34,7 +34,7 @@ export default Vue.component('modal', {
<div class="modal-container" @click.stop>
<div v-on:click="close">
<icon name="x"
class="absolute pin-r pin-t m-2 text-grey cursor-pointer"
class="absolute pin-r pin-t m-2 textneutral-500scursor-pointer"
aria-label="Close modal"
role="button"
/>

View file

@ -101,7 +101,7 @@ export default Vue.component('navigation', {
<a href="#">
<div class="flex items-center">
<div class="flex-1">
<span class="text-sm text-grey-darker">Loading...</span>
<span class="text-sm text-neutral-800">Loading...</span>
</div>
<div class="flex-none">
<span class="spinner spinner-relative"></span>
@ -113,8 +113,8 @@ export default Vue.component('navigation', {
<router-link :to="{ name: 'server', params: { id: server.identifier }}" v-on:click.native="searchActive = false">
<div class="flex items-center">
<div class="flex-1">
<span class="font-bold text-grey-darkest">{{ server.name }}</span><br />
<span class="font-light text-grey-dark text-sm" v-if="server.description.length > 0">{{ server.description }}</span>
<span class="font-bold text-neutral-900">{{ server.name }}</span><br />
<span class="font-light text-neutral-600 text-sm" v-if="server.description.length > 0">{{ server.description }}</span>
</div>
<div class="flex-none">
<span class="pillbox bg-indigo">{{ server.node }}</span>

View file

@ -171,12 +171,12 @@ export default Vue.component('server-box', {
{{ server.name }}
</h2>
</router-link>
<div class="text-grey-darker font-normal text-sm">
<div class="text-neutral-800 font-normal text-sm">
<p v-if="server.description.length" class="pb-1">{{ server.description }}</p>
<div class="absolute pin-b pin-l p-4 w-full">
<span class="font-semibold text-indigo">{{ server.node }}</span>
<span class="float-right text-grey-dark font-light">{{ server.allocation.ip }}:{{ server.allocation.port }}</span>
<span class="float-right text-neutral-600 font-light">{{ server.allocation.ip }}:{{ server.allocation.port }}</span>
</div>
</div>
</div>

View file

@ -53,7 +53,7 @@ export default Vue.component('change-password', {
<div id="change-password-container" :class>
<form method="post" v-on:submit.prevent="submitForm">
<div class="content-box">
<h2 class="mb-6 text-grey-darkest font-medium">{{ $t('dashboard.account.password.title') }}</h2>
<h2 class="mb-6 text-neutral-900 font-medium">{{ $t('dashboard.account.password.title') }}</h2>
<div class="mt-6">
<label for="grid-password-current" class="input-label">{{ $t('strings.password') }}</label>
<input id="grid-password-current" name="current_password" type="password" class="input" required

View file

@ -128,7 +128,7 @@ export default Vue.component('two-factor-authentication', {
<span class="spinner spinner-xl text-blue"></span>
</div>
<div id="container-disable-two-factor" v-if="response.enabled" v-show="!spinner">
<h2 class="font-medium text-grey-darkest">{{ $t('dashboard.account.two_factor.disable.title') }}</h2>
<h2 class="font-medium text-neutral-900">{{ $t('dashboard.account.two_factor.disable.title') }}</h2>
<div class="mt-6">
<label class="input-label" for="grid-two-factor-token-disable">{{ $t('dashboard.account.two_factor.disable.field') }}</label>
<input id="grid-two-factor-token-disable" type="number" class="input"
@ -151,14 +151,14 @@ export default Vue.component('two-factor-authentication', {
</div>
</div>
<div id="container-enable-two-factor" v-else v-show="!spinner">
<h2 class="font-medium text-grey-darkest">{{ $t('dashboard.account.two_factor.setup.title') }}</h2>
<h2 class="font-medium text-neutral-900">{{ $t('dashboard.account.two_factor.setup.title') }}</h2>
<div class="flex mt-6">
<div class="flex-none w-full sm:w-1/2 text-center">
<div class="h-48">
<img :src="response.qr_image" id="grid-qr-code" alt="Two-factor qr image" class="h-48">
</div>
<div>
<p class="text-xs text-grey-darker mb-2">{{ $t('dashboard.account.two_factor.setup.help') }}</p>
<p class="text-xs text-neutral-800 mb-2">{{ $t('dashboard.account.two_factor.setup.help') }}</p>
<p class="text-xs"><code>{{response.secret}}</code></p>
</div>
</div>

View file

@ -51,7 +51,7 @@ export default Vue.component('update-email', {
<div id="update-email-container" :class>
<form method="post" v-on:submit.prevent="submitForm">
<div class="content-box">
<h2 class="mb-6 text-grey-darkest font-medium">{{ $t('dashboard.account.email.title') }}</h2>
<h2 class="mb-6 text-neutral-900 font-medium">{{ $t('dashboard.account.email.title') }}</h2>
<div>
<label for="grid-email" class="input-label">{{ $t('strings.email_address') }}</label>
<input id="grid-email" name="email" type="email" class="input" required

View file

@ -82,32 +82,28 @@ export default Vue.component('server', {
<div class="mr-6">
<div class="p-6 text-center bg-white rounded shadow">
<h3 class="mb-2 text-blue font-medium">{{server.name}}</h3>
<span class="text-grey-dark text-sm">{{server.node}}</span>
<power-buttons class="mt-6 pt-6 text-center border-t border-grey-lighter"/>
<span class="text-neutral-600 text-sm">{{server.node}}</span>
<power-buttons class="mt-6 pt-6 text-center border-t border-neutral-100"/>
</div>
</div>
<div class="mt-6 sidenav mr-6">
<div class="sidenav mt-6 mr-6">
<ul>
<li>
<router-link :to="{ name: 'server', params: { id: $route.params.id } }">
Console
</router-link>
</li>
<li>
<router-link :to="{ name: 'server-files' }">
File Manager
</router-link>
<!--<router-link :to="{ name: 'server-subusers' }">-->
<!--<icon name="users" class="h-4"></icon> Subusers-->
<!--</router-link>-->
<!--<router-link :to="{ name: 'server-schedules' }">-->
<!--<icon name="calendar" class="h-4"></icon> Schedules-->
<!--</router-link>-->
</li>
<li>
<router-link :to="{ name: 'server-databases' }">
Databases
</router-link>
<!--<router-link :to="{ name: 'server-allocations' }">-->
<!--<icon name="globe" class="h-4"></icon> Allocations-->
<!--</router-link>-->
<!--<router-link :to="{ name: 'server-settings' }">-->
<!--<icon name="settings" class="h-4"></icon> Settings-->
<!--</router-link>-->
</li>
</ul>
</div>
</div>
<div class="h-full w-full">

View file

@ -28,7 +28,7 @@ export default Vue.component('power-buttons', {
v-on:click.prevent="sendPowerAction('start')"
>Start</button>
<div v-else>
<button class="btn btn-red uppercase text-xs px-4 py-2" v-on:click.prevent="sendPowerAction('stop')">Stop</button>
<button class="btn btn-red-500 uppercase text-xs px-4 py-2" v-on:click.prevent="sendPowerAction('stop')">Stop</button>
<button class="btn btn-secondary uppercase text-xs px-4 py-2" v-on:click.prevent="sendPowerAction('restart')">Restart</button>
<button class="btn btn-secondary uppercase text-xs px-4 py-2" v-on:click.prevent="sendPowerAction('kill')">Kill</button>
</div>
@ -37,7 +37,7 @@ export default Vue.component('power-buttons', {
<div v-else>
<div class="text-center">
<div class="spinner"></div>
<div class="pt-2 text-xs text-grey-light">Connecting to node</div>
<div class="pt-2 text-xs text-neutral-400">Connecting to node</div>
</div>
</div>
</div>

View file

@ -13,7 +13,7 @@ export default Vue.component('progress-bar', {
} else if (this.percent >= 70 && this.percent < 90) {
return "bg-yellow-dark";
} else {
return "bg-red-dark";
return "bg-red-600";
}
},
borderColor: function () {
@ -22,7 +22,7 @@ export default Vue.component('progress-bar', {
} else if (this.percent >= 70 && this.percent < 90) {
return "border-yellow-dark";
} else {
return "border-red-dark";
return "border-red-600";
}
}
},
@ -30,7 +30,7 @@ export default Vue.component('progress-bar', {
template: `
<div>
<div class="text-right mb-1" v-if="title.length > 0">
<span class="text-grey-dark text-xs uppercase">{{ title }}</span>
<span class="text-neutral-600 text-xs uppercase">{{ title }}</span>
</div>
<div class="w-full border rounded h-4" :class="borderColor">
<div class="h-full w-1/3 text-center" :style="{ width: percent + '%' }" :class="backgroundColor">

View file

@ -1,7 +1,7 @@
<template>
<div>
<message-box class="alert error mb-6" :message="errorMessage" v-show="errorMessage.length"/>
<h2 class="font-medium text-grey-darkest mb-6">Create a new database</h2>
<h2 class="font-medium text-neutral-900 mb-6">Create a new database</h2>
<div class="mb-6">
<label class="input-label" for="grid-database-name">Database name</label>
<input id="grid-database-name" type="text" class="input" name="database_name" required

View file

@ -1,17 +1,17 @@
<template>
<div class="content-box mb-6 hover:border-grey">
<div class="flex items-center text-grey-darker">
<div class="content-box mb-6 hover:borderneutral-500">
<div class="flex items-center text-neutral-800">
<database-icon class="flex-none text-green"></database-icon>
<div class="flex-1 px-4">
<p class="uppercase text-xs text-grey pb-1 select-none">Database Name</p>
<p class="uppercase text-xs textneutral-500spb-1 select-none">Database Name</p>
<p>{{database.name}}</p>
</div>
<div class="flex-1 px-4">
<p class="uppercase text-xs text-grey pb-1 select-none">Username</p>
<p class="uppercase text-xs textneutral-500spb-1 select-none">Username</p>
<p>{{database.username}}</p>
</div>
<div class="flex-1 px-4">
<p class="uppercase text-xs text-grey pb-1 select-none">Password</p>
<p class="uppercase text-xs textneutral-500spb-1 select-none">Password</p>
<p>
<code class="text-sm cursor-pointer" v-on:click="revealPassword">
<span class="select-none" v-if="!database.showPassword">
@ -22,7 +22,7 @@
</p>
</div>
<div class="flex-1 px-4">
<p class="uppercase text-xs text-grey pb-1 select-none">Server</p>
<p class="uppercase text-xs textneutral-500spb-1 select-none">Server</p>
<p><code class="text-sm">{{database.host.address}}:{{database.host.port}}</code></p>
</div>
<div class="flex-none px-4">

View file

@ -1,7 +1,7 @@
<template>
<div>
<h2 class="font-medium text-grey-darkest mb-6">Delete this database?</h2>
<p class="text-grey-darkest text-sm">This action <strong>cannot</strong> be undone. This will permanetly delete the <strong>{{database.name}}</strong> database and remove all associated data.</p>
<h2 class="font-medium text-neutral-900 mb-6">Delete this database?</h2>
<p class="text-neutral-900 text-sm">This action <strong>cannot</strong> be undone. This will permanetly delete the <strong>{{database.name}}</strong> database and remove all associated data.</p>
<div class="mt-6">
<label class="input-label">Confirm database name</label>
<input type="text" class="input" v-model="nameConfirmation"/>

View file

@ -89,8 +89,8 @@ export default Vue.component('file-row', {
<icon name="link2" v-else/>
</div>
<div class="flex-1">{{file.name}}</div>
<div class="flex-1 text-right text-grey-dark">{{readableSize(file.size)}}</div>
<div class="flex-1 text-right text-grey-dark">{{formatDate(file.modified)}}</div>
<div class="flex-1 text-right text-neutral-600">{{readableSize(file.size)}}</div>
<div class="flex-1 text-right text-neutral-600">{{formatDate(file.modified)}}</div>
<div class="flex-none w-1/6"></div>
</div>
<file-context-menu class="context-menu" v-show="contextMenuVisible" ref="contextMenu"/>

View file

@ -35,8 +35,8 @@ export default Vue.component('folder-row', {
<icon name="folder"/>
</div>
<div class="flex-1">{{directory.name}}</div>
<div class="flex-1 text-right text-grey-dark"></div>
<div class="flex-1 text-right text-grey-dark">{{formatDate(directory.modified)}}</div>
<div class="flex-1 text-right text-neutral-600"></div>
<div class="flex-1 text-right text-neutral-600">{{formatDate(directory.modified)}}</div>
<div class="flex-none w-1/6"></div>
</router-link>
</div>

View file

@ -162,12 +162,12 @@ export default Vue.component('server-console', {
<div class="animate fadein shadow-md">
<div class="text-xs font-mono">
<div class="rounded-t p-2 bg-black overflow-scroll w-full" style="min-height: 16rem;max-height:64rem;">
<div class="mb-2 text-grey-light" ref="terminal" v-if="connected"></div>
<div class="mb-2 text-neutral-400" ref="terminal" v-if="connected"></div>
<div v-else>
<div class="spinner spinner-xl mt-24"></div>
</div>
</div>
<div class="rounded-b bg-grey-darkest text-white flex">
<div class="rounded-b bg-neutral-900 text-white flex">
<div class="flex-no-shrink p-2">
<span class="font-bold">$</span>
</div>

View file

@ -92,8 +92,8 @@ export default Vue.component('server-databases', {
<div class="animate fadein" v-else>
<div class="content-box mb-6" v-if="!databases.length">
<div class="flex items-center">
<icon name="database" class="flex-none text-grey-darker"></icon>
<div class="flex-1 px-4 text-grey-darker">
<icon name="database" class="flex-none text-neutral-800"></icon>
<div class="flex-1 px-4 text-neutral-800">
<p>You have no databases.</p>
</div>
</div>

View file

@ -136,7 +136,7 @@ export default Vue.component('file-manager', {
<div class="alert error" v-text="errorMessage"></div>
</div>
<div v-else-if="!directories.length && !files.length">
<p class="text-grey text-sm text-center p-6 pb-4">This directory is empty.</p>
<p class="textneutral-500stext-sm text-center p-6 pb-4">This directory is empty.</p>
</div>
<div class="filemanager" v-else>
<div class="header">

View file

@ -35,7 +35,7 @@
@apply .bg-red;
}
100% {
@apply .bg-red-dark;
@apply .bg-red-600;
}
}

View file

@ -23,23 +23,23 @@
&.btn-red {
&:not(.btn-secondary) {
@apply .bg-red .border-red-dark .border .text-white;
@apply .bg-red-500 .border-red-600 .border .text-white;
}
&:hover:enabled {
@apply .bg-red-dark .border-red-darker;
@apply .bg-red-600 .border-red-800;
}
}
&.btn-secondary {
@apply .border .border-grey-light .text-grey-dark;
@apply .border .border-neutral-400 .text-neutral-600;
&:hover:enabled {
@apply .border-grey .text-grey-darker;
@apply .borderneutral-500s.text-neutral-800;
}
&.btn-red:hover:enabled {
@apply .bg-red-dark .border-red-darker .text-white;
@apply .bg-red-600 .border-red-800 .text-white;
}
}

View file

@ -1,6 +1,6 @@
.filemanager {
& .header {
@apply .flex .text-sm .pb-4 .font-bold .border-b .border-grey-light .mb-3;
@apply .flex .text-sm .pb-4 .font-bold .border-b .border-neutral-400 .mb-3;
& > div {
@apply .pr-4;
@ -19,7 +19,7 @@
}
&.active-selection, &.clickable:hover {
@apply .bg-grey-lightest .text-grey-darkest .shadow;
@apply .bg-neutral-50 .text-neutral-900 .shadow;
}
& > .icon {
@ -31,10 +31,10 @@
}
.context-menu {
@apply .absolute .bg-white .py-2 .border .rounded .text-grey-darker .text-sm .cursor-pointer;
@apply .absolute .bg-white .py-2 .border .rounded .text-neutral-800 .text-sm .cursor-pointer;
& > div:not(:last-of-type) {
@apply .border-b .border-grey-lightest .pb-2 .mb-2;
@apply .border-b .border-neutral-50 .pb-2 .mb-2;
}
& .context-row {
@ -53,11 +53,11 @@
}
&:hover {
@apply .bg-grey-lightest .border-t .border-b .border-grey-lighter;
@apply .bg-neutral-50 .border-t .border-b .border-neutral-100;
}
&.danger:hover {
@apply .bg-red-lightest .border-t .border-b .border-red-lighter;
@apply .bg-red-50 .border-t .border-b .border-red-100;
}
}
@ -65,7 +65,7 @@
}
.filemanager-breadcrumbs {
@apply .px-4 .py-3 .mb-6 .rounded .bg-white .text-grey-darker .shadow-md;
@apply .px-4 .py-3 .mb-6 .rounded .bg-white .text-neutral-800 .shadow-md;
& a {
@apply .no-underline .text-blue;

View file

@ -21,7 +21,7 @@ input[type=number] {
}
.input-open > .input {
@apply .appearance-none .block .w-full .text-grey-darker .border-b-2 .border-grey-light .py-3 .mb-3;
@apply .appearance-none .block .w-full .text-neutral-800 .border-b-2 .border-neutral-400 .py-3 .mb-3;
&:focus {
@apply .border-blue-light;
@ -30,7 +30,7 @@ input[type=number] {
}
&:focus + label, &:valid + label, &.has-content + label {
@apply .text-grey-darker .px-0 .cursor-pointer;
@apply .text-neutral-800 .px-0 .cursor-pointer;
transform:translateY(-26px)
}
@ -40,7 +40,7 @@ input[type=number] {
}
.input-open > label {
@apply .block .uppercase .tracking-wide .text-grey .text-xs .mb-2 .absolute;
@apply .block .uppercase .tracking-wide .textneutral-500s.text-xs .mb-2 .absolute;
top: 14px;
transition: transform 200ms ease-out;
}
@ -49,7 +49,7 @@ input[type=number] {
* Styling for other forms throughout the Panel.
*/
.input:not(.open-label) {
@apply .appearance-none .p-3 .rounded .border .text-grey-darker .w-full;
@apply .appearance-none .p-3 .rounded .border .text-neutral-800 .w-full;
transition: all 100ms linear;
&:focus {
@ -61,18 +61,18 @@ input[type=number] {
}
&.error {
@apply .text-red-dark .border-red;
@apply .text-red-600 .border-red;
}
}
.input-label {
@apply .block .uppercase .tracking-wide .text-grey-darkest .text-xs .font-bold .mb-2;
@apply .block .uppercase .tracking-wide .text-neutral-900 .text-xs .font-bold .mb-2;
}
.input-help {
@apply .text-xs .text-grey .pt-2;
@apply .text-xs .textneutral-500s.pt-2;
&.error {
@apply .text-red-dark;
@apply .text-red-600;
}
}

View file

@ -11,7 +11,7 @@ code {
* Indicators for server online status.
*/
.indicator {
@apply .bg-grey-darker .border .border-grey;
@apply .bg-neutral-800 .border .border-grey;
border-radius: 50%;
width: 16px;
height: 16px;
@ -89,16 +89,16 @@ code {
}
& a, & a:visited {
@apply .no-underline .text-grey-darkest;
@apply .no-underline .text-neutral-900;
}
& > .content {
@apply .border .border-grey-light .bg-white .no-underline .block .text-black .p-4;
border-top: 4px solid config('colors.grey-light') !important;
@apply .border .border-neutral-400 .bg-white .no-underline .block .text-black .p-4;
border-top: 4px solid config('colors.neutral-400') !important;
}
& > .footer {
@apply .border .border-grey-light .border-t-0 .bg-grey-lightest;
@apply .border .border-neutral-400 .border-t-0 .bg-neutral-50;
}
}
@ -110,7 +110,7 @@ code {
@apply .w-full .my-4;
& > input[type="text"] {
@apply .w-full .p-3 .rounded .border .text-grey-darker;
@apply .w-full .p-3 .rounded .border .text-neutral-800;
transition: border 150ms ease-in;
&:focus {

View file

@ -19,7 +19,7 @@
@apply .mr-2;
& > .search-input {
@apply .text-sm .p-2 .ml-8 .rounded .border .border-blue-darker .bg-grey-lightest .text-grey-darkest .w-96;
@apply .text-sm .p-2 .ml-8 .rounded .border .border-blue-darker .bg-neutral-50 .text-neutral-900 .w-96;
opacity: 0.9;
transition: ease-in-out opacity 150ms;
@ -35,13 +35,13 @@
}
& .search-results {
@apply .absolute .bg-grey-lightest .border .border-blue-darkest .border-t-0 .rounded .rounded-t-none .p-2 .ml-8 .z-50 .w-96;
@apply .absolute .bg-neutral-50 .border .border-blue-darkest .border-t-0 .rounded .rounded-t-none .p-2 .ml-8 .z-50 .w-96;
& a {
@apply .block .no-underline .p-2 .rounded;
&:hover {
@apply .bg-grey-lighter;
@apply .bg-neutral-100;
}
}
}
@ -51,7 +51,7 @@
@apply .flex .h-full .items-center;
& > a {
@apply .block .flex .self-stretch .items-center .no-underline .text-grey-lighter .font-light .text-sm .px-5;
@apply .block .flex .self-stretch .items-center .no-underline .text-neutral-100 .font-light .text-sm .px-5;
&:hover {
@apply .bg-blue-dark;
@ -61,16 +61,24 @@
}
.sidenav {
a {
@apply .block .no-underline .text-grey-darker .py-2;
transition: color 75ms ease-in;
ul {
@apply .list-reset;
&:hover {
@apply .text-grey;
& li {
@apply .block;
& > a {
transition: border-left-color 250ms linear, color 250ms linear;
@apply .block .px-4 .py-3 .border-l-3 .border-neutral-100 .no-underline .text-neutral-400 .font-medium;
&:hover, &.router-link-exact-active {
@apply .text-neutral-800;
}
&.router-link-exact-active {
@apply .font-medium;
@apply .border-blue .cursor-default;
}
}
}
}
}
@ -79,10 +87,10 @@
@apply .py-2;
a {
@apply .block .py-3 .px-6 .text-grey-darkest .no-underline .border .border-transparent;
@apply .block .py-3 .px-6 .text-neutral-900 .no-underline .border .border-transparent;
&:hover, &.router-link-exact-active {
@apply .border-grey-light .bg-grey-lightest;
@apply .border-neutral-400 .bg-neutral-50;
border-left: 1px solid transparent;
border-right: 1px solid transparent;

View file

@ -13,7 +13,7 @@
}
&.error {
@apply .bg-red-dark .border-red-darker .text-red-lightest;
@apply .bg-red-600 .border-red-800 .text-red-50;
& > .title {
@apply .bg-red;

View file

@ -7,7 +7,7 @@
}
&:after {
@apply .border-2 .border-grey-light .absolute .block .h-4 .w-4 .rounded-full;
@apply .border-2 .border-neutral-400 .absolute .block .h-4 .w-4 .rounded-full;
animation: spinners--spin 500ms infinite linear;
border-top-color: transparent !important;
border-right-color: transparent !important;

View file

@ -98,7 +98,7 @@
<div class="row">
@if($node->maintenance_mode)
<div class="col-sm-12">
<div class="info-box bg-orange">
<div class="info-box bg-grey">
<span class="info-box-icon"><i class="ion ion-wrench"></i></span>
<div class="info-box-content" style="padding: 23px 10px 0;">
<span class="info-box-text">This node is under</span>

View file

@ -1,5 +1,5 @@
@extends('templates/wrapper', [
'css' => ['body' => 'bg-grey-darkest']
'css' => ['body' => 'bg-neutral-900']
])
@section('container')
@ -8,7 +8,7 @@
<img src="/assets/img/pterodactyl-flat.svg" class="max-w-xxs">
</div>
<router-view></router-view>
<p class="text-center text-grey text-xs">
<p class="text-center textneutral-500stext-xs">
{!! trans('strings.copyright', ['year' => date('Y')]) !!}
</p>
</div>

View file

@ -56,7 +56,7 @@
@section('below-container')
<div class="flex-grow"></div>
<div class="w-full m-auto mt-0 container">
<p class="text-center sm:text-right text-grey-dark text-xs">
<p class="text-center sm:text-right text-neutral-600 text-xs">
{!! trans('strings.copyright', ['year' => date('Y')]) !!}
</p>
</div>

View file

@ -32,7 +32,7 @@
@include('layouts.scripts')
</head>
<body class="{{ $css['body'] ?? 'bg-grey-lightest' }}">
<body class="{{ $css['body'] ?? 'bg-neutral-50' }}">
@section('content')
@yield('above-container')
<div id="pterodactyl" class="flex flex-col">

View file

@ -49,61 +49,76 @@ let colors = {
'white': '#ffffff',
'basically-white': '#fafafb',
'grey-lightest': '#F5F7FA',
'grey-lighter': '#E4E7EB',
'grey-light': '#CBD2D9',
'grey': '#9AA5B1',
'grey-dark': '#52606D',
'grey-darker': '#3E4C59',
'grey-darkest': '#323F4B',
// The design's primary colors. Splashes of color that should appear the most
// within the UI and determine the overall look of the site.
'primary-50': 'hsl(202, 100%, 95%)', // lightest
'primary-100': 'hsl(204, 100%, 86%)', // lighter
'primary-200': 'hsl(206, 93%, 73%)',
'primary-300': 'hsl(208, 88%, 62%)',
'primary-400': 'hsl(210, 83%, 53%)', // light
'primary-500': 'hsl(212, 92%, 43%)', // base
'primary-600': 'hsl(214, 95%, 36%)', // dark
'primary-700': 'hsl(215, 96%, 32%)',
'primary-800': 'hsl(216, 98%, 25%)', // darker
'primary-900': 'hsl(218, 100%, 17%)', //darkest
'red-lightest': '#FFE3E3',
'red-lighter': '#FFBDBD',
'red-light': '#F86A6A',
'red': '#CF1124',
'red-dark': '#AB091E',
'red-darker': '#8A041A',
'red-darkest': '#610316',
// Color used the most in the design and make up the majority of the UI.
'neutral-50': 'hsl(216, 33%, 97%)',
'neutral-100': 'hsl(214, 15%, 91%)',
'neutral-200': 'hsl(210, 16%, 82%)',
'neutral-300': 'hsl(211, 13%, 65%)',
'neutral-400': 'hsl(211, 10%, 53%)',
'neutral-500': 'hsl(211, 12%, 43%)',
'neutral-600': 'hsl(209, 14%, 37%)',
'neutral-700': 'hsl(209, 18%, 30%)',
'neutral-800': 'hsl(209, 20%, 25%)',
'neutral-900': 'hsl(210, 24%, 16%)',
'orange-lightest': '#FFE8D9',
'orange-lighter': '#FFD0B5',
'orange-light': '#F9703E',
'orange': '#DE3A11',
'orange-dark': '#C52707',
'orange-darker': '#AD1D07',
'orange-darkest': '#841003',
// Supporting colors used to make an element stand out or re-inforce error
// states or trends.
'red-50': 'hsl(360, 100%, 95%)',
'red-100': 'hsl(360, 100%, 87%)',
'red-200': 'hsl(360, 100%, 80%)',
'red-300': 'hsl(360, 91%, 69%)',
'red-400': 'hsl(360, 83%, 62%)',
'red-500': 'hsl(356, 75%, 53%)',
'red-600': 'hsl(354, 85%, 44%)',
'red-700': 'hsl(352, 90%, 35%)',
'red-800': 'hsl(350, 94%, 28%)',
'red-900': 'hsl(348, 94%, 20%)',
'yellow-lightest': '#fbfae9',
'yellow-lighter': '#ede9a7',
'yellow-light': '#e0d965',
'yellow': '#d2c823',
'yellow-dark': '#bdb420',
'yellow-darker': '#7e7815',
'yellow-darkest': '#3f3c0b',
'yellow-50': 'hsl(49, 100%, 96%)',
'yellow-100': 'hsl(48, 100%, 88%)',
'yellow-200': 'hsl(48, 95%, 76%)',
'yellow-300': 'hsl(48, 94%, 68%)',
'yellow-400': 'hsl(44, 92%, 63%)',
'yellow-500': 'hsl(42, 87%, 55%)',
'yellow-600': 'hsl(36, 77%, 49%)',
'yellow-700': 'hsl(29, 80%, 44%)',
'yellow-800': 'hsl(22, 82%, 39%)',
'yellow-900': 'hsl(15, 86%, 30%)',
'green-lightest': '#eef7eb',
'green-lighter': '#bbdeae',
'green-light': '#89c671',
'green': '#56ad34',
'green-dark': '#4d9c2f',
'green-darker': '#34681f',
'green-darkest': '#1a3410',
'cyan-50': 'hsl(171, 82%, 94%)',
'cyan-100': 'hsl(172, 97%, 88%)',
'cyan-200': 'hsl(174, 96%, 78%)',
'cyan-300': 'hsl(176, 87%, 67%)',
'cyan-400': 'hsl(178, 78%, 57%)',
'cyan-500': 'hsl(180, 77%, 47%)',
'cyan-600': 'hsl(182, 85%, 39%)',
'cyan-700': 'hsl(184, 90%, 34%)',
'cyan-800': 'hsl(186, 91%, 29%)',
'cyan-900': 'hsl(188, 91%, 23%)',
'blue-lightest': '#E6F6FF',
'blue-lighter': '#BAE3FF',
'blue-light': '#2186EB',
'blue': '#0967D2',
'blue-dark': '#0552B5',
'blue-darker': '#01337D',
'blue-darkest': '#002159',
'cyan-lightest': '#E1FCF8',
'cyan-lighter': '#C1FEF6',
'cyan-light': '#62F4EB',
'cyan': '#0FB5BA',
'cyan-dark': '#099AA4',
'cyan-darker': '#07818F',
'cyan-darkest': '#05606E',
'green-50': 'hsl(83, 100%, 96%)',
'green-100': 'hsl(83, 100%, 87%)',
'green-200': 'hsl(86, 100%, 76%)',
'green-300': 'hsl(88, 91%, 66%)',
'green-400': 'hsl(90, 84%, 55%)',
'green-500': 'hsl(92, 86%, 45%)',
'green-600': 'hsl(92, 89%, 38%)',
'green-700': 'hsl(100, 89%, 31%)',
'green-800': 'hsl(99, 91%, 25%)',
'green-900': 'hsl(100, 93%, 17%)',
};
module.exports = {
@ -357,6 +372,7 @@ module.exports = {
default: '1px',
'0': '0',
'2': '2px',
'3': '3px',
'4': '4px',
'8': '8px',
},
@ -378,7 +394,7 @@ module.exports = {
|
*/
borderColors: global.Object.assign({default: colors['grey-light']}, colors),
borderColors: global.Object.assign({default: colors['neutral-400']}, colors),
/*
|-----------------------------------------------------------------------------