From a640703f2da8815dc26ad1600a6f206be1624379 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 1 Jun 2022 22:10:32 +0200 Subject: feat: Initial after clean slate --- apps/web-shared/src/styles/components/alert.scss | 69 +++++ .../src/styles/components/autocomplete.scss | 76 +++++ .../src/styles/components/btn-states.scss | 51 ++++ apps/web-shared/src/styles/components/chip.scss | 117 ++++++++ .../src/styles/components/circle-loader.scss | 315 +++++++++++++++++++++ .../src/styles/components/custom-checkbox.scss | 131 +++++++++ .../src/styles/components/custom-select.scss | 158 +++++++++++ apps/web-shared/src/styles/components/details.scss | 57 ++++ .../web-shared/src/styles/components/dropdown.scss | 98 +++++++ .../src/styles/components/form-validator.scss | 18 ++ .../src/styles/components/interactive-table.scss | 156 ++++++++++ apps/web-shared/src/styles/components/list.scss | 195 +++++++++++++ .../web-shared/src/styles/components/menu-bar.scss | 139 +++++++++ apps/web-shared/src/styles/components/menu.scss | 81 ++++++ apps/web-shared/src/styles/components/modal.scss | 105 +++++++ .../src/styles/components/pagination.scss | 77 +++++ apps/web-shared/src/styles/components/popover.scss | 38 +++ .../src/styles/components/pre-header.scss | 46 +++ .../src/styles/components/radios-checkboxes.scss | 134 +++++++++ .../src/styles/components/select-autocomplete.scss | 173 +++++++++++ .../src/styles/components/tabbed-navigation.scss | 133 +++++++++ apps/web-shared/src/styles/components/table.scss | 147 ++++++++++ .../src/styles/components/user-menu.scss | 81 ++++++ 23 files changed, 2595 insertions(+) create mode 100644 apps/web-shared/src/styles/components/alert.scss create mode 100644 apps/web-shared/src/styles/components/autocomplete.scss create mode 100644 apps/web-shared/src/styles/components/btn-states.scss create mode 100644 apps/web-shared/src/styles/components/chip.scss create mode 100644 apps/web-shared/src/styles/components/circle-loader.scss create mode 100644 apps/web-shared/src/styles/components/custom-checkbox.scss create mode 100644 apps/web-shared/src/styles/components/custom-select.scss create mode 100644 apps/web-shared/src/styles/components/details.scss create mode 100644 apps/web-shared/src/styles/components/dropdown.scss create mode 100644 apps/web-shared/src/styles/components/form-validator.scss create mode 100644 apps/web-shared/src/styles/components/interactive-table.scss create mode 100644 apps/web-shared/src/styles/components/list.scss create mode 100644 apps/web-shared/src/styles/components/menu-bar.scss create mode 100644 apps/web-shared/src/styles/components/menu.scss create mode 100644 apps/web-shared/src/styles/components/modal.scss create mode 100644 apps/web-shared/src/styles/components/pagination.scss create mode 100644 apps/web-shared/src/styles/components/popover.scss create mode 100644 apps/web-shared/src/styles/components/pre-header.scss create mode 100644 apps/web-shared/src/styles/components/radios-checkboxes.scss create mode 100644 apps/web-shared/src/styles/components/select-autocomplete.scss create mode 100644 apps/web-shared/src/styles/components/tabbed-navigation.scss create mode 100644 apps/web-shared/src/styles/components/table.scss create mode 100644 apps/web-shared/src/styles/components/user-menu.scss (limited to 'apps/web-shared/src/styles/components') diff --git a/apps/web-shared/src/styles/components/alert.scss b/apps/web-shared/src/styles/components/alert.scss new file mode 100644 index 0000000..9d9008d --- /dev/null +++ b/apps/web-shared/src/styles/components/alert.scss @@ -0,0 +1,69 @@ +@use '../base' as *; + +/* -------------------------------- + +File#: _1_alert +Title: Alert +Descr: Feedback message +Usage: codyhouse.co/license + +-------------------------------- */ + +.alert { + background-color: alpha(var(--color-primary), 0.2); + color: var(--color-contrast-higher); + + // hide element + position: absolute; + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); +} + +.alert__icon { + color: var(--color-primary); +} + +.alert__close-btn { + display: inline-block; + + .icon { + display: block; + } + + &:hover { + opacity: 0.7; + } +} + +// themes +.alert--success { + background-color: alpha(var(--color-success), 0.2); + + .alert__icon { + color: var(--color-success); + } +} + +.alert--error { + background-color: alpha(var(--color-error), 0.2); + + .alert__icon { + color: var(--color-error); + } +} + +.alert--warning { + background-color: alpha(var(--color-warning), 0.2); + + .alert__icon { + color: var(--color-warning); + } +} + +// toggle visibility +.alert--is-visible { + position: static; + clip: auto; + clip-path: none; +} + diff --git a/apps/web-shared/src/styles/components/autocomplete.scss b/apps/web-shared/src/styles/components/autocomplete.scss new file mode 100644 index 0000000..cde3632 --- /dev/null +++ b/apps/web-shared/src/styles/components/autocomplete.scss @@ -0,0 +1,76 @@ +@use '../base' as *; +@use 'circle-loader.scss' as *; + +/* -------------------------------- + +File#: _2_autocomplete +Title: Autocomplete +Descr: Autocomplete plugin for input elements +Usage: codyhouse.co/license + +-------------------------------- */ + +:root { + --autocomplete-dropdown-vertical-gap: 4px; // gap between input and results list + --autocomplete-dropdown-max-height: 150px; + --autocomplete-dropdown-scrollbar-width: 6px; // custom scrollbar width - webkit browsers +} + +// results dropdown +.autocomplete__results { + position: absolute; + z-index: var(--z-index-popover, 5); + width: 100%; + left: 0; + top: calc(100% + var(--autocomplete-dropdown-vertical-gap)); + background-color: var(--color-bg-light); + box-shadow: var(--inner-glow), var(--shadow-md); + border-radius: var(--radius-md); + opacity: 0; + visibility: hidden; + overflow: hidden; + + .autocomplete--results-visible & { + opacity: 1; + visibility: visible; + } +} + +.autocomplete__list { + max-height: var(--autocomplete-dropdown-max-height); + overflow: auto; + -webkit-overflow-scrolling: touch; + + // custom scrollbar + &::-webkit-scrollbar { // scrollbar width + width: var(--autocomplete-dropdown-scrollbar-width); + } + + &::-webkit-scrollbar-track { // progress bar + background-color: alpha(var(--color-contrast-higher), 0.08); + border-radius: 0; + } + + &::-webkit-scrollbar-thumb { // handle + background-color: alpha(var(--color-contrast-higher), 0.12); + border-radius: 0; + + &:hover { + background-color: alpha(var(--color-contrast-higher), 0.2); + } + } +} + +// single result item +.autocomplete__item { + cursor: pointer; + + &:hover { + background-color: alpha(var(--color-contrast-higher), 0.075); + } + + &:focus { + outline: none; + background-color: alpha(var(--color-primary), 0.15); + } +} diff --git a/apps/web-shared/src/styles/components/btn-states.scss b/apps/web-shared/src/styles/components/btn-states.scss new file mode 100644 index 0000000..a2fc6c5 --- /dev/null +++ b/apps/web-shared/src/styles/components/btn-states.scss @@ -0,0 +1,51 @@ +@use '../base' as *; + +/* -------------------------------- + +File#: _1_btn-states +Title: Buttons states +Descr: Multi-state button elements +Usage: codyhouse.co/license + +-------------------------------- */ + +.btn__content-a { + display: inline-flex; +} + +.btn__content-b { + display: none; +} + +.btn__content-a, .btn__content-b { + align-items: center; +} + +.btn--state-b { + .btn__content-a { + display: none; + } + + .btn__content-b { + display: inline-block; // fallback + display: inline-flex; + } +} + +/* preserve button width when switching from state A to state B */ +.btn--preserve-width { + .btn__content-b { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + justify-content: center; + } + + &.btn--state-b .btn__content-a { + display: inline-block; // fallback + display: inline-flex; + visibility: hidden; + } +} diff --git a/apps/web-shared/src/styles/components/chip.scss b/apps/web-shared/src/styles/components/chip.scss new file mode 100644 index 0000000..1bb93db --- /dev/null +++ b/apps/web-shared/src/styles/components/chip.scss @@ -0,0 +1,117 @@ +@use '../base' as *; + +/* -------------------------------- + +File#: _1_chips +Title: Chips +Descr: A list of compact pieces of information +Usage: codyhouse.co/license + +-------------------------------- */ + +.chip { + /* reset - in case the class is applied to a