Converted primary color use to css variable

- Removed all existing SCSS usage of primary color.
- Cut down custom styles injection to just be css vars.
- Reduced button styles so default button is primary.
- Updated button styles to lighten/brighten on hover & active states even
when a custom color is set.
- Removed unused scss color vars.
- Updated default BookStack blue to achieve better accessibility.
This commit is contained in:
Dan Brown 2019-08-25 12:40:04 +01:00
parent b792108bc1
commit ae93a6ed07
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
42 changed files with 120 additions and 133 deletions

View File

@ -14,8 +14,8 @@ return [
'app-logo' => '',
'app-name-header' => true,
'app-editor' => 'wysiwyg',
'app-color' => '#0288D1',
'app-color-light' => 'rgba(21, 101, 192, 0.15)',
'app-color' => '#1d75b6',
'app-color-light' => 'rgba(29,117,182,0.15)',
'app-custom-head' => false,
'registration-enabled' => false,

View File

@ -10,7 +10,7 @@ class SettingAppColorPicker {
this.colorInput.addEventListener('change', this.updateColor.bind(this));
this.colorInput.addEventListener('input', this.updateColor.bind(this));
this.resetButton.addEventListener('click', event => {
this.colorInput.value = '#0288D1';
this.colorInput.value = '#1d75b6';
this.updateColor();
});
}

View File

@ -4,28 +4,6 @@ button {
font-size: 100%;
}
@mixin generate-button-colors($textColor, $backgroundColor) {
background-color: $backgroundColor;
color: $textColor;
fill: $textColor;
border: 1px solid $backgroundColor;
&:hover {
background-color: lighten($backgroundColor, 8%);
color: $textColor;
}
&:active {
background-color: darken($backgroundColor, 8%);
}
&:focus {
background-color: lighten($backgroundColor, 4%);
box-shadow: $bs-light;
color: $textColor;
}
}
// Button Specific Variables
$button-border-radius: 2px;
.button {
text-decoration: none;
font-size: 0.85rem;
@ -36,39 +14,54 @@ $button-border-radius: 2px;
display: inline-block;
font-weight: 400;
outline: 0;
border-radius: $button-border-radius;
border-radius: 2px;
cursor: pointer;
transition: background-color ease-in-out 120ms, box-shadow ease-in-out 120ms;
transition: background-color ease-in-out 120ms,
filter ease-in-out 120ms,
box-shadow ease-in-out 120ms;
box-shadow: none;
background-color: $primary;
background-color: var(--color-primary);
color: #FFF;
fill: #FFF;
text-transform: uppercase;
border: 1px solid $primary;
border: 1px solid var(--color-primary);
vertical-align: top;
&:hover, &:focus {
&:hover, &:focus, &:active {
background-color: var(--color-primary);
text-decoration: none;
color: #FFFFFF;
}
&:hover {
box-shadow: $bs-light;
filter: brightness(110%);
}
&:focus {
outline: 1px dotted currentColor;
outline-offset: -$-xs;
box-shadow: none;
filter: brightness(90%);
}
&:active {
outline: 0;
background-color: darken($primary, 8%);
}
}
.button.primary {
@include generate-button-colors(#FFFFFF, $primary);
}
.button.outline {
background-color: transparent;
color: #888;
fill: #888;
border: 1px solid #DDD;
color: #666;
fill: currentColor;
border: 1px solid #CCC;
&:hover, &:focus, &:active {
border: 1px solid #CCC;
box-shadow: none;
background-color: #EEE;
background-color: #F2F2F2;
filter: none;
}
&:active {
border-color: #BBB;
background-color: #DDD;
color: #666;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1);
}
}
@ -90,12 +83,18 @@ $button-border-radius: 2px;
user-select: none;
font-size: 0.75rem;
line-height: 1.4em;
&:active {
color: var(--color-primary);
fill: var(--color-primary);
&:active {
outline: 0;
}
&:hover {
text-decoration: none;
}
&:hover, &:focus {
color: var(--color-primary);
fill: var(--color-primary);
}
}
.button.block {
@ -125,6 +124,7 @@ $button-border-radius: 2px;
.button[disabled] {
background-color: #BBB;
cursor: default;
border-color: #CCC;
&:hover {
background-color: #BBB;
cursor: default;

View File

@ -1,3 +1,13 @@
/**
* Background colors
*/
.primary-background {
background-color: var(--color-primary) !important;
}
.primary-background-light {
background-color: var(--color-primary-light);
}
/*
* Status text colors
@ -21,8 +31,8 @@
* Style text colors
*/
.text-primary, .text-primary:hover, .text-primary-hover:hover {
color: $primary !important;
fill: $primary !important;
color: var(--color-primary) !important;
fill: var(--color-primary) !important;
}
.text-muted {

View File

@ -150,9 +150,6 @@
padding: 8px $-m;
}
}
.popup-footer {
margin-top: 1px;
}
body.flexbox-support #entity-selector-wrap .popup-body .form-group {
height: 444px;
min-height: 444px;
@ -582,6 +579,20 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
}
}
.nav-tabs {
text-align: center;
a, .tab-item {
padding: $-m;
display: inline-block;
color: #666;
fill: #666;
cursor: pointer;
&.selected {
border-bottom: 2px solid var(--color-primary);
}
}
}
.image-picker .none {
display: none;
}

View File

@ -98,7 +98,7 @@
max-width: 100%;
}
[drawio-diagram]:hover {
outline: 2px solid $primary;
outline: 2px solid var(--color-primary);
}
}
@ -339,16 +339,16 @@ div[editor-type="markdown"] .title-input.page-title input[type="text"] {
button {
background-color: transparent;
border: none;
color: $primary;
fill: #666;
padding: 0;
cursor: pointer;
position: absolute;
left: 8px;
top: 9.5px;
top: 9px;
}
input {
display: block;
padding-left: $-l;
padding-left: $-l + 4px;
width: 300px;
max-width: 100%;
}

View File

@ -18,7 +18,6 @@ header {
display: block;
z-index: 11;
top: 0;
background-color: $primary-dark;
color: #fff;
fill: #fff;
border-bottom: 1px solid #DDD;
@ -371,18 +370,4 @@ header .search-box {
.action-buttons .dropdown-container:last-child a {
padding-left: $-xs;
}
}
.nav-tabs {
text-align: center;
a, .tab-item {
padding: $-m;
display: inline-block;
color: #666;
fill: #666;
cursor: pointer;
&.selected {
border-bottom: 2px solid $primary;
}
}
}

View File

@ -90,14 +90,14 @@ h2.list-heading {
* Link styling
*/
a {
color: $primary;
color: var(--color-primary);
fill: var(--color-primary);
cursor: pointer;
text-decoration: none;
transition: color ease-in-out 80ms;
transition: filter ease-in-out 80ms;
line-height: 1.6;
&:hover {
text-decoration: underline;
color: darken($primary, 20%);
}
&.icon {
display: inline-block;
@ -195,7 +195,7 @@ pre {
blockquote {
display: block;
position: relative;
border-left: 4px solid $primary;
border-left: 4px solid var(--color-primary);
background-color: #F8F8F8;
padding: $-s $-m $-s $-xl;
&:before {
@ -239,7 +239,6 @@ pre code {
}
span.highlight {
//background-color: rgba($primary, 0.2);
font-weight: bold;
padding: 2px 4px;
}

View File

@ -41,20 +41,20 @@ $fs-m: 14px;
$fs-s: 12px;
// Colours
$primary: #0288D1;
$primary-dark: #0288D1;
$secondary: #cf4d03;
:root {
--color-primary: '#1d75b6';
--color-primary-light: 'rgba(29,117,182,0.15)';
}
$positive: #0f7d15;
$negative: #ab0f0e;
$info: $primary;
$warning: $secondary;
$primary-faded: rgba(21, 101, 192, 0.15);
$info: #0288D1;
$warning: #cf4d03;
// Item Colors
$color-bookshelf: #af5a5a;
$color-book: #009688;
$color-chapter: #d7804a;
$color-page: $primary;
$color-page: #0288D1;
$color-page-draft: #9A60DA;
// Text colours

View File

@ -99,7 +99,7 @@ $loadingSize: 10px;
// Back to top link
$btt-size: 40px;
[back-to-top] {
background-color: $primary;
background-color: var(--color-primary);
position: fixed;
bottom: $-m;
right: $-l;
@ -187,7 +187,7 @@ $btt-size: 40px;
margin-bottom: 0;
}
.entity-list-item.selected {
background-color: rgba(0, 0, 0, 0.15) !important;
background-color: rgba(0, 0, 0, 0.05) !important;
}
.loading {
height: 400px;

View File

@ -16,7 +16,7 @@
</div>
<div class="text-right">
<button class="button primary">{{ trans('auth.user_invite_page_confirm_button') }}</button>
<button class="button">{{ trans('auth.user_invite_page_confirm_button') }}</button>
</div>
</form>

View File

@ -28,7 +28,7 @@
</div>
<div class="text-right">
<button class="button primary" tabindex="1">{{ title_case(trans('auth.log_in')) }}</button>
<button class="button" tabindex="1">{{ title_case(trans('auth.log_in')) }}</button>
</div>
</div>

View File

@ -16,7 +16,7 @@
</div>
<div class="from-group text-right mt-m">
<button class="button primary">{{ trans('auth.reset_password_send_button') }}</button>
<button class="button">{{ trans('auth.reset_password_send_button') }}</button>
</div>
</form>

View File

@ -26,7 +26,7 @@
</div>
<div class="from-group text-right mt-m">
<button class="button primary">{{ trans('auth.reset_password') }}</button>
<button class="button">{{ trans('auth.reset_password') }}</button>
</div>
</form>

View File

@ -31,7 +31,7 @@
<a href="{{ url('/login') }}">{{ trans('auth.already_have_account') }}</a>
</div>
<div class="from-group text-right">
<button class="button primary">{{ trans('auth.create_account') }}</button>
<button class="button">{{ trans('auth.create_account') }}</button>
</div>
</div>

View File

@ -24,7 +24,7 @@
@endif
</div>
<div class="form-group text-right mt-m">
<button type="submit" class="button primary">{{ trans('auth.email_not_confirmed_resend_button') }}</button>
<button type="submit" class="button">{{ trans('auth.email_not_confirmed_resend_button') }}</button>
</div>
</form>

View File

@ -23,7 +23,7 @@
{!! csrf_field() !!}
<input type="hidden" name="_method" value="DELETE">
<a href="{{$book->getUrl()}}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.confirm') }}</button>
<button type="submit" class="button">{{ trans('common.confirm') }}</button>
</form>
</div>

View File

@ -37,5 +37,5 @@
<div class="form-group text-right">
<a href="{{ isset($book) ? $book->getUrl() : url('/books') }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.books_save') }}</button>
<button type="submit" class="button">{{ trans('entities.books_save') }}</button>
</div>

View File

@ -28,7 +28,7 @@
<input book-sort-input type="hidden" name="sort-tree">
<div class="list text-right">
<a href="{{ $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button class="button primary" type="submit">{{ trans('entities.books_sort_save') }}</button>
<button class="button" type="submit">{{ trans('entities.books_sort_save') }}</button>
</div>
</form>
</div>

View File

@ -27,7 +27,7 @@
<div class="text-right">
<a href="{{ $chapter->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.confirm') }}</button>
<button type="submit" class="button">{{ trans('common.confirm') }}</button>
</div>
</form>
</div>

View File

@ -22,5 +22,5 @@
<div class="form-group text-right">
<a href="{{ isset($chapter) ? $chapter->getUrl() : $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.chapters_save') }}</button>
<button type="submit" class="button">{{ trans('entities.chapters_save') }}</button>
</div>

View File

@ -27,7 +27,7 @@
<div class="form-group text-right">
<a href="{{ $chapter->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.chapters_move') }}</button>
<button type="submit" class="button">{{ trans('entities.chapters_move') }}</button>
</div>
</form>

View File

@ -61,7 +61,7 @@
</div>
<div class="form-group text-right">
<button type="button" class="button outline" action="closeUpdateForm">{{ trans('common.cancel') }}</button>
<button type="submit" class="button primary">{{ trans('entities.comment_save') }}</button>
<button type="submit" class="button">{{ trans('entities.comment_save') }}</button>
</div>
<div class="form-group loading" style="display: none;">
@include('partials.loading-icon', ['text' => trans('entities.comment_saving')])

View File

@ -19,7 +19,7 @@
<div class="form-group text-right">
<button type="button" class="button outline"
action="hideForm">{{ trans('common.cancel') }}</button>
<button type="submit" class="button primary">{{ trans('entities.comment_save') }}</button>
<button type="submit" class="button">{{ trans('entities.comment_save') }}</button>
</div>
<div class="form-group loading" style="display: none;">
@include('partials.loading-icon', ['text' => trans('entities.comment_saving')])

View File

@ -43,7 +43,7 @@
</div>
<div class="form-group">
<button type="button" class="button primary" @click="save()">{{ trans('components.code_save') }}</button>
<button type="button" class="button" @click="save()">{{ trans('components.code_save') }}</button>
</div>
</div>

View File

@ -7,7 +7,7 @@
</div>
@include('components.entity-selector', ['name' => 'entity-selector'])
<div class="popup-footer">
<button type="button" disabled="true" class="button entity-link-selector-confirm primary corner-button">{{ trans('common.select') }}</button>
<button type="button" disabled="true" class="button entity-link-selector-confirm corner-button">{{ trans('common.select') }}</button>
</div>
</div>
</div>

View File

@ -72,7 +72,7 @@
<button type="button" class="button icon outline" @click="deleteImage">@icon('delete')</button>
</div>
<button class="button primary anim fadeIn float right" v-show="selectedImage" @click="callbackAndHide(selectedImage)">
<button class="button anim fadeIn float right" v-show="selectedImage" @click="callbackAndHide(selectedImage)">
{{ trans('components.image_select_image') }}
</button>
<div class="clearfix"></div>

View File

@ -37,6 +37,6 @@
<div class="text-right">
<a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.permissions_save') }}</button>
<button type="submit" class="button">{{ trans('entities.permissions_save') }}</button>
</div>
</form>

View File

@ -57,7 +57,7 @@
<input type="text" placeholder="{{ trans('entities.attachments_link_url_hint') }}" v-model="file.link">
<p class="small text-neg" v-for="error in errors.link.link" v-text="error"></p>
</div>
<button @click.prevent="attachNewLink(file)" class="button primary">{{ trans('entities.attach') }}</button>
<button @click.prevent="attachNewLink(file)" class="button">{{ trans('entities.attach') }}</button>
</div>
</div>
@ -92,7 +92,7 @@
</div>
<button type="button" class="button outline" @click="cancelEdit">{{ trans('common.back') }}</button>
<button @click.enter.prevent="updateFile(fileToEdit)" class="button primary">{{ trans('common.save') }}</button>
<button @click.enter.prevent="updateFile(fileToEdit)" class="button">{{ trans('common.save') }}</button>
</div>
</div>

View File

@ -39,7 +39,7 @@
<div class="form-group text-right">
<a href="{{ $page->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.pages_copy') }}</button>
<button type="submit" class="button">{{ trans('entities.pages_copy') }}</button>
</div>
</form>

View File

@ -34,7 +34,7 @@
<input type="hidden" name="_method" value="DELETE">
<div class="form-group text-right">
<a href="{{ $page->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.confirm') }}</button>
<button type="submit" class="button">{{ trans('common.confirm') }}</button>
</div>
</form>
</div>

View File

@ -27,7 +27,7 @@
<div class="form-group text-right">
<a href="{{ $parent->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.continue') }}</button>
<button type="submit" class="button">{{ trans('common.continue') }}</button>
</div>
</form>

View File

@ -27,7 +27,7 @@
<div class="form-group text-right">
<a href="{{ $page->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.pages_move') }}</button>
<button type="submit" class="button">{{ trans('entities.pages_move') }}</button>
</div>
</form>

View File

@ -1,24 +1,6 @@
<style id="custom-styles" data-color="{{ setting('app-color') }}" data-color-light="{{ setting('app-color-light') }}">
.primary-background {
background-color: {{ setting('app-color') }} !important;
}
.primary-background-light {
background-color: {{ setting('app-color-light') }};
}
.button.primary, .button.primary:hover, .button.primary:active, .button.primary:focus {
background-color: {{ setting('app-color') }};
border-color: {{ setting('app-color') }};
}
.nav-tabs a.selected, .nav-tabs .tab-item.selected {
border-bottom-color: {{ setting('app-color') }};
}
.text-primary, .text-primary-hover:hover, .text-primary:hover {
color: {{ setting('app-color') }} !important;
fill: {{ setting('app-color') }} !important;
}
a, a:hover, a:focus, .text-button, .text-button:hover, .text-button:focus {
color: {{ setting('app-color') }};
fill: {{ setting('app-color') }};
:root {
--color-primary: {{ setting('app-color') }};
--color-primary-light: {{ setting('app-color-light') }};
}
</style>

View File

@ -182,7 +182,7 @@
</table>
<button type="submit" class="button primary">{{ trans('entities.search_update') }}</button>
<button type="submit" class="button">{{ trans('entities.search_update') }}</button>
</form>
</div>

View File

@ -72,7 +72,7 @@
</div>
<div class="form-group text-right">
<button type="submit" class="button primary">{{ trans('settings.settings_save') }}</button>
<button type="submit" class="button">{{ trans('settings.settings_save') }}</button>
</div>
</form>
</div>
@ -135,7 +135,7 @@
<p class="small">{!! trans('settings.app_primary_color_desc') !!}</p>
</div>
<div setting-app-color-picker class="text-m-right">
<input type="color" value="{{ setting('app-color') }}" name="setting-app-color" id="setting-app-color" placeholder="#0288D1">
<input type="color" value="{{ setting('app-color') }}" name="setting-app-color" id="setting-app-color" placeholder="#1d75b6">
<input type="hidden" value="{{ setting('app-color-light') }}" name="setting-app-color-light" id="setting-app-color-light">
<br>
<button type="button" class="text-button text-muted mt-s mx-s" setting-app-color-picker-reset>{{ trans('common.reset') }}</button>
@ -173,7 +173,7 @@
</div>
<div class="form-group text-right">
<button type="submit" class="button primary">{{ trans('settings.settings_save') }}</button>
<button type="submit" class="button">{{ trans('settings.settings_save') }}</button>
</div>
</form>
</div>
@ -236,7 +236,7 @@
</div>
<div class="form-group text-right">
<button type="submit" class="button primary">{{ trans('settings.settings_save') }}</button>
<button type="submit" class="button">{{ trans('settings.settings_save') }}</button>
</div>
</form>
</div>

View File

@ -32,7 +32,7 @@
<div>
<div class="form-group text-right">
<a href="{{ url("/settings/roles/{$role->id}") }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.confirm') }}</button>
<button type="submit" class="button">{{ trans('common.confirm') }}</button>
</div>
</div>
</div>

View File

@ -224,7 +224,7 @@
@if (isset($role) && $role->id)
<a href="{{ url("/settings/roles/delete/{$role->id}") }}" class="button outline">{{ trans('settings.role_delete') }}</a>
@endif
<button type="submit" class="button primary">{{ trans('settings.role_save') }}</button>
<button type="submit" class="button">{{ trans('settings.role_save') }}</button>
</div>
</div>

View File

@ -66,5 +66,5 @@
<div class="form-group text-right">
<a href="{{ isset($shelf) ? $shelf->getUrl() : url('/shelves') }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('entities.shelves_save') }}</button>
<button type="submit" class="button">{{ trans('entities.shelves_save') }}</button>
</div>

View File

@ -20,7 +20,7 @@
<div class="form-group text-right">
<a href="{{ url($currentUser->can('users-manage') ? "/settings/users" : "/") }}" class="button outline">{{ trans('common.cancel') }}</a>
<button class="button primary" type="submit">{{ trans('common.save') }}</button>
<button class="button" type="submit">{{ trans('common.save') }}</button>
</div>
</form>

View File

@ -20,7 +20,7 @@
<input type="hidden" name="_method" value="DELETE">
<a href="{{ url("/settings/users/{$user->id}") }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button primary">{{ trans('common.confirm') }}</button>
<button type="submit" class="button">{{ trans('common.confirm') }}</button>
</form>
</div>
</div>

View File

@ -58,7 +58,7 @@
@if($authMethod !== 'system')
<a href="{{ url("/settings/users/{$user->id}/delete") }}" class="button outline">{{ trans('settings.users_delete') }}</a>
@endif
<button class="button primary" type="submit">{{ trans('common.save') }}</button>
<button class="button" type="submit">{{ trans('common.save') }}</button>
</div>
</form>
</div>