diff --git a/Makefile b/Makefile index 1b0fc625..adefa0f1 100644 --- a/Makefile +++ b/Makefile @@ -13,3 +13,4 @@ format: black bookmarks black siteroot npx prettier bookmarks/frontend --write + npx prettier bookmarks/styles --write diff --git a/bookmarks/styles/bookmark-details.css b/bookmarks/styles/bookmark-details.css index 22441a4b..08ef8598 100644 --- a/bookmarks/styles/bookmark-details.css +++ b/bookmarks/styles/bookmark-details.css @@ -12,7 +12,8 @@ gap: var(--unit-2); } - & a.weblink img, & a.weblink svg { + & a.weblink img, + & a.weblink svg { flex: 0 0 auto; width: 16px; height: 16px; @@ -110,7 +111,8 @@ gap: var(--unit-2); } - & .status .form-group, .status .form-switch { + & .status .form-group, + .status .form-switch { margin: 0; } diff --git a/bookmarks/styles/bookmark-form.css b/bookmarks/styles/bookmark-form.css index 77b40494..f84842e8 100644 --- a/bookmarks/styles/bookmark-form.css +++ b/bookmarks/styles/bookmark-form.css @@ -1,38 +1,39 @@ .bookmarks-form-page { - section { - max-width: 550px; - margin: 0 auto; - } + section { + max-width: 550px; + margin: 0 auto; + } } .bookmarks-form { - & .has-icon-right > input, & .has-icon-right > textarea { - padding-right: 30px; - } + & .has-icon-right > input, + & .has-icon-right > textarea { + padding-right: 30px; + } - & .form-icon.loading { - visibility: hidden; - } + & .form-icon.loading { + visibility: hidden; + } - & .form-group .clear-button { - display: none; - padding: 0; - border: none; - height: auto; - font-size: var(--font-size-sm); - } + & .form-group .clear-button { + display: none; + padding: 0; + border: none; + height: auto; + font-size: var(--font-size-sm); + } - & .form-input-hint.bookmark-exists { - display: none; - color: var(--warning-color); - } + & .form-input-hint.bookmark-exists { + display: none; + color: var(--warning-color); + } - & .form-input-hint.auto-tags { - display: none; - color: var(--success-color); - } + & .form-input-hint.auto-tags { + display: none; + color: var(--success-color); + } - & details.notes textarea { - box-sizing: border-box; - } -} \ No newline at end of file + & details.notes textarea { + box-sizing: border-box; + } +} diff --git a/bookmarks/styles/bookmark-page.css b/bookmarks/styles/bookmark-page.css index 093624ac..dcefd834 100644 --- a/bookmarks/styles/bookmark-page.css +++ b/bookmarks/styles/bookmark-page.css @@ -1,508 +1,524 @@ :root { - --bookmark-title-color: var(--primary-text-color); - --bookmark-title-weight: 500; - --bookmark-description-color: var(--text-color); - --bookmark-description-weight: 400; - --bookmark-actions-color: var(--secondary-text-color); - --bookmark-actions-hover-color: var(--text-color); - --bookmark-actions-weight: 400; - --bulk-actions-bg-color: var(--gray-50); + --bookmark-title-color: var(--primary-text-color); + --bookmark-title-weight: 500; + --bookmark-description-color: var(--text-color); + --bookmark-description-weight: 400; + --bookmark-actions-color: var(--secondary-text-color); + --bookmark-actions-hover-color: var(--text-color); + --bookmark-actions-weight: 400; + --bulk-actions-bg-color: var(--gray-50); } /* Bookmark page grid */ .bookmarks-page.grid { - grid-gap: var(--unit-9); + grid-gap: var(--unit-9); } /* Bookmark area header controls */ .bookmarks-page .search-container { - flex: 1 1 0; - display: flex; - max-width: 300px; - margin-left: auto; + flex: 1 1 0; + display: flex; + max-width: 300px; + margin-left: auto; - & form { - width: 100%; - } + & form { + width: 100%; + } - @media (max-width: 600px) { - max-width: initial; - margin-left: 0; - } - - /* Regular input */ + @media (max-width: 600px) { + max-width: initial; + margin-left: 0; + } - & input[type='search'] { - height: var(--control-size); - -webkit-appearance: none; - } + /* Regular input */ - /* Enhanced auto-complete input */ - /* This needs a bit more wrangling to make the CSS component align with the attached button */ - - & .form-autocomplete { - height: var(--control-size); - - & .form-autocomplete-input { - width: 100%; - height: var(--control-size); - - & input[type='search'] { - width: 100%; - height: 100%; - margin: 0; - border: none; - } - } - } - - /* Group search options button with search button */ + & input[type="search"] { height: var(--control-size); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow-xs); + -webkit-appearance: none; + } - & input, & .form-autocomplete-input { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - box-shadow: none; - } - - & .dropdown-toggle { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - box-shadow: none; - outline-offset: calc(var(--focus-outline-offset) * -1); - } - - /* Search option menu styles */ - - & .dropdown { - & .menu { - padding: var(--unit-4); - min-width: 250px; - font-size: var(--font-size-sm); - } - - & .menu .actions { - margin-top: var(--unit-4); - display: flex; - justify-content: space-between; - } - - & .form-group:first-of-type { - margin-top: 0; - } - - & .form-group { - margin-bottom: var(--unit-3); - } - - & .radio-group { - & .form-label { - margin-bottom: var(--unit-1); - } - - & .form-radio.form-inline { - margin: 0 var(--unit-2) 0 0; - padding: 0; - display: inline-flex; - align-items: center; - column-gap: var(--unit-1); - } - - & .form-icon { - top: 0; - position: relative; - } - } - } -} - -/* Bookmark list */ -ul.bookmark-list { - list-style: none; - margin: 0; - padding: 0; - - /* Increase line-height for better separation within / between items */ - line-height: 1.1rem; -} + /* Enhanced auto-complete input */ + /* This needs a bit more wrangling to make the CSS component align with the attached button */ -@keyframes appear { - 0% { - opacity: 0; - } - 90% { - opacity: 0; - } - 100% { - opacity: 1; - } -} + & .form-autocomplete { + height: var(--control-size); -/* Bookmarks */ -li[ld-bookmark-item] { - position: relative; - display: flex; - gap: var(--unit-2); - margin-top: 0; - margin-bottom: var(--unit-3); + & .form-autocomplete-input { + width: 100%; + height: var(--control-size); - & .content { - flex: 1 1 0; - min-width: 0; + & input[type="search"] { + width: 100%; + height: 100%; + margin: 0; + border: none; + } } + } - & .preview-image { - flex: 0 0 auto; - width: 100px; - height: 60px; - margin-top: var(--unit-h); - border-radius: var(--border-radius); - border: solid 1px var(--border-color); - object-fit: cover; - - &.placeholder { - display: flex; - align-items: center; - justify-content: center; - background: var(--body-color-contrast); - - & .img { - width: var(--unit-12); - height: var(--unit-12); - background-color: var(--tertiary-text-color); - -webkit-mask: url(preview-placeholder.svg) no-repeat center; - mask: url(preview-placeholder.svg) no-repeat center; - } - } - } + /* Group search options button with search button */ + height: var(--control-size); + border-radius: var(--border-radius); + box-shadow: var(--box-shadow-xs); - & .form-checkbox.bulk-edit-checkbox { - display: none; - } + & input, + & .form-autocomplete-input { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + box-shadow: none; + } - & .title { - position: relative; - } + & .dropdown-toggle { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + box-shadow: none; + outline-offset: calc(var(--focus-outline-offset) * -1); + } - & .title img { - position: absolute; - width: 16px; - height: 16px; - left: 0; - top: 50%; - transform: translateY(-50%); - pointer-events: none; - } + /* Search option menu styles */ - & .title img + a { - padding-left: 22px; + & .dropdown { + & .menu { + padding: var(--unit-4); + min-width: 250px; + font-size: var(--font-size-sm); } - & .title a { - color: var(--bookmark-title-color); - font-weight: var(--bookmark-title-weight); - display: block; - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + & .menu .actions { + margin-top: var(--unit-4); + display: flex; + justify-content: space-between; } - & .title a[data-tooltip]:hover::after, & .title a[data-tooltip]:focus::after { - content: attr(data-tooltip); - position: absolute; - z-index: 10; - top: 100%; - left: 50%; - transform: translateX(-50%); - width: max-content; - max-width: 90%; - height: fit-content; - background-color: #292f62; - color: #fff; - padding: var(--unit-1); - border-radius: var(--border-radius); - border: 1px solid #424a8c; - font-size: var(--font-size-sm); - font-style: normal; - white-space: normal; - pointer-events: none; - animation: 0.3s ease 0s appear; + & .form-group:first-of-type { + margin-top: 0; } - @media (pointer: coarse) { - & .title a[data-tooltip]::after { - display: none; - } + & .form-group { + margin-bottom: var(--unit-3); } - &.unread .title a { - font-style: italic; - } + & .radio-group { + & .form-label { + margin-bottom: var(--unit-1); + } - & .url-path, & .url-display { - font-size: var(--font-size-sm); - color: var(--secondary-link-color); - } + & .form-radio.form-inline { + margin: 0 var(--unit-2) 0 0; + padding: 0; + display: inline-flex; + align-items: center; + column-gap: var(--unit-1); + } - & .description { - color: var(--bookmark-description-color); - font-weight: var(--bookmark-description-weight); + & .form-icon { + top: 0; + position: relative; + } } + } +} - & .description.separate { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: var(--ld-bookmark-description-max-lines, 1); - overflow: hidden; - } +/* Bookmark list */ +ul.bookmark-list { + list-style: none; + margin: 0; + padding: 0; - & .tags { - & a, & a:visited:hover { - color: var(--alternative-color); - } - } + /* Increase line-height for better separation within / between items */ + line-height: 1.1rem; +} - & .actions, & .extra-actions { - display: flex; - align-items: baseline; - flex-wrap: wrap; - column-gap: var(--unit-2); - } +@keyframes appear { + 0% { + opacity: 0; + } + 90% { + opacity: 0; + } + 100% { + opacity: 1; + } +} - @media (max-width: 600px) { - & .extra-actions { - width: 100%; - margin-top: var(--unit-1); - } - } +/* Bookmarks */ +li[ld-bookmark-item] { + position: relative; + display: flex; + gap: var(--unit-2); + margin-top: 0; + margin-bottom: var(--unit-3); - & .actions { - color: var(--bookmark-actions-color); - font-size: var(--font-size-sm); - - & a, & button.btn-link { - color: var(--bookmark-actions-color); - --btn-icon-color: var(--bookmark-actions-color); - font-weight: var(--bookmark-actions-weight); - padding: 0; - height: auto; - vertical-align: unset; - border: none; - box-sizing: border-box; - transition: none; - text-decoration: none; - - &:focus, - &:hover, - &:active, - &.active { - color: var(--bookmark-actions-hover-color); - --btn-icon-color: var(--bookmark-actions-hover-color); - } - } - } + & .content { + flex: 1 1 0; + min-width: 0; + } + + & .preview-image { + flex: 0 0 auto; + width: 100px; + height: 60px; + margin-top: var(--unit-h); + border-radius: var(--border-radius); + border: solid 1px var(--border-color); + object-fit: cover; + + &.placeholder { + display: flex; + align-items: center; + justify-content: center; + background: var(--body-color-contrast); + + & .img { + width: var(--unit-12); + height: var(--unit-12); + background-color: var(--tertiary-text-color); + -webkit-mask: url(preview-placeholder.svg) no-repeat center; + mask: url(preview-placeholder.svg) no-repeat center; + } + } + } + + & .form-checkbox.bulk-edit-checkbox { + display: none; + } + + & .title { + position: relative; + } + + & .title img { + position: absolute; + width: 16px; + height: 16px; + left: 0; + top: 50%; + transform: translateY(-50%); + pointer-events: none; + } + + & .title img + a { + padding-left: 22px; + } + + & .title a { + color: var(--bookmark-title-color); + font-weight: var(--bookmark-title-weight); + display: block; + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + & .title a[data-tooltip]:hover::after, + & .title a[data-tooltip]:focus::after { + content: attr(data-tooltip); + position: absolute; + z-index: 10; + top: 100%; + left: 50%; + transform: translateX(-50%); + width: max-content; + max-width: 90%; + height: fit-content; + background-color: #292f62; + color: #fff; + padding: var(--unit-1); + border-radius: var(--border-radius); + border: 1px solid #424a8c; + font-size: var(--font-size-sm); + font-style: normal; + white-space: normal; + pointer-events: none; + animation: 0.3s ease 0s appear; + } + + @media (pointer: coarse) { + & .title a[data-tooltip]::after { + display: none; + } + } + + &.unread .title a { + font-style: italic; + } + + & .url-path, + & .url-display { + font-size: var(--font-size-sm); + color: var(--secondary-link-color); + } + + & .description { + color: var(--bookmark-description-color); + font-weight: var(--bookmark-description-weight); + } + + & .description.separate { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: var(--ld-bookmark-description-max-lines, 1); + overflow: hidden; + } + + & .tags { + & a, + & a:visited:hover { + color: var(--alternative-color); + } + } + + & .actions, + & .extra-actions { + display: flex; + align-items: baseline; + flex-wrap: wrap; + column-gap: var(--unit-2); + } + + @media (max-width: 600px) { + & .extra-actions { + width: 100%; + margin-top: var(--unit-1); + } + } + + & .actions { + color: var(--bookmark-actions-color); + font-size: var(--font-size-sm); + + & a, + & button.btn-link { + color: var(--bookmark-actions-color); + --btn-icon-color: var(--bookmark-actions-color); + font-weight: var(--bookmark-actions-weight); + padding: 0; + height: auto; + vertical-align: unset; + border: none; + box-sizing: border-box; + transition: none; + text-decoration: none; + + &:focus, + &:hover, + &:active, + &.active { + color: var(--bookmark-actions-hover-color); + --btn-icon-color: var(--bookmark-actions-hover-color); + } + } + } } .bookmark-pagination { - margin-top: var(--unit-4); - - /* Remove left padding from first pagination link */ - - & .page-item:first-child a { - padding-left: 0; - } - - &.sticky { - position: sticky; - bottom: 0; - border-top: solid 1px var(--secondary-border-color); - background: var(--body-color); - padding-bottom: var(--unit-h); - - &:before { - content: ''; - position: absolute; - top: 0; - bottom: 0; - left: calc(-1 * calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset))); - width: calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset)); - background: var(--body-color); - } - } - - & .pagination { - overflow: hidden; - } + margin-top: var(--unit-4); + + /* Remove left padding from first pagination link */ + + & .page-item:first-child a { + padding-left: 0; + } + + &.sticky { + position: sticky; + bottom: 0; + border-top: solid 1px var(--secondary-border-color); + background: var(--body-color); + padding-bottom: var(--unit-h); + + &:before { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: calc( + -1 * calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset)) + ); + width: calc( + var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset) + ); + background: var(--body-color); + } + } + + & .pagination { + overflow: hidden; + } } .tag-cloud { - /* Increase line-height for better separation within / between items */ - line-height: 1.1rem; + /* Increase line-height for better separation within / between items */ + line-height: 1.1rem; - & .selected-tags { - margin-bottom: var(--unit-4); + & .selected-tags { + margin-bottom: var(--unit-4); - & a, - & a:visited:hover { - color: var(--error-color); - } + & a, + & a:visited:hover { + color: var(--error-color); } + } - & .unselected-tags { - & a, - & a:visited:hover { - color: var(--alternative-color); - } + & .unselected-tags { + & a, + & a:visited:hover { + color: var(--alternative-color); } + } - & .group { - margin-bottom: var(--unit-3); - } + & .group { + margin-bottom: var(--unit-3); + } - & .highlight-char { - font-weight: bold; - text-transform: uppercase; - color: var(--alternative-color-dark); - } + & .highlight-char { + font-weight: bold; + text-transform: uppercase; + color: var(--alternative-color-dark); + } } /* Bookmark notes */ ul.bookmark-list { - & .notes { - display: none; - max-height: 300px; - margin: var(--unit-1) 0; - overflow-y: auto; - background: var(--body-color-contrast); - border-radius: var(--border-radius); - } + & .notes { + display: none; + max-height: 300px; + margin: var(--unit-1) 0; + overflow-y: auto; + background: var(--body-color-contrast); + border-radius: var(--border-radius); + } - & .notes .markdown { - padding: var(--unit-2) var(--unit-3); - } + & .notes .markdown { + padding: var(--unit-2) var(--unit-3); + } - &.show-notes .notes, - & li.show-notes .notes { - display: block; - } + &.show-notes .notes, + & li.show-notes .notes { + display: block; + } } /* Bookmark bulk edit */ :root { - --bulk-edit-toggle-width: 16px; - --bulk-edit-toggle-offset: 8px; - --bulk-edit-bar-offset: calc(var(--bulk-edit-toggle-width) + (2 * var(--bulk-edit-toggle-offset))); - --bulk-edit-transition-duration: 400ms; + --bulk-edit-toggle-width: 16px; + --bulk-edit-toggle-offset: 8px; + --bulk-edit-bar-offset: calc( + var(--bulk-edit-toggle-width) + (2 * var(--bulk-edit-toggle-offset)) + ); + --bulk-edit-transition-duration: 400ms; } [ld-bulk-edit] { - & .bulk-edit-bar { - margin-top: -1px; - margin-left: calc(-1 * var(--bulk-edit-bar-offset)); - margin-bottom: var(--unit-4); - max-height: 0; - overflow: hidden; - transition: max-height var(--bulk-edit-transition-duration); - background: var(--bulk-actions-bg-color); - } + & .bulk-edit-bar { + margin-top: -1px; + margin-left: calc(-1 * var(--bulk-edit-bar-offset)); + margin-bottom: var(--unit-4); + max-height: 0; + overflow: hidden; + transition: max-height var(--bulk-edit-transition-duration); + background: var(--bulk-actions-bg-color); + } + + &.active .bulk-edit-bar { + max-height: 37px; + border-bottom: solid 1px var(--secondary-border-color); + } + + /* Hide section border when bulk edit bar is opened, otherwise borders overlap in dark mode due to using contrast colors */ + + &.active section:first-of-type .content-area-header { + border-bottom-color: transparent; + } + + /* remove overflow after opening animation, otherwise tag autocomplete overlay gets cut off */ + + &.active:not(.activating) .bulk-edit-bar { + overflow: visible; + } + + /* make sticky pagination expand to cover checkboxes to the left */ + + &.active .bookmark-pagination.sticky:before { + content: ""; + position: absolute; + top: -1px; + bottom: 0; + left: calc( + -1 * calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset)) + ); + width: calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset)); + background: var(--body-color); + border-top: solid 1px var(--secondary-border-color); + } + + /* All checkbox */ + + & .form-checkbox.bulk-edit-checkbox.all { + display: block; + width: var(--bulk-edit-toggle-width); + margin: 0 0 0 var(--bulk-edit-toggle-offset); + padding: 0; + } + + /* Bookmark checkboxes */ + + & li[ld-bookmark-item] .form-checkbox.bulk-edit-checkbox { + display: block; + position: absolute; + width: var(--bulk-edit-toggle-width); + min-height: var(--bulk-edit-toggle-width); + left: calc( + -1 * var(--bulk-edit-toggle-width) - var(--bulk-edit-toggle-offset) + ); + top: 50%; + transform: translateY(-50%); + padding: 0; + margin: 0; + visibility: hidden; + opacity: 0; + transition: all var(--bulk-edit-transition-duration); - &.active .bulk-edit-bar { - max-height: 37px; - border-bottom: solid 1px var(--secondary-border-color); + .form-icon { + top: 0; } + } - /* Hide section border when bulk edit bar is opened, otherwise borders overlap in dark mode due to using contrast colors */ + &.active li[ld-bookmark-item] .form-checkbox.bulk-edit-checkbox { + visibility: visible; + opacity: 1; + } - &.active section:first-of-type .content-area-header { - border-bottom-color: transparent; - } - - /* remove overflow after opening animation, otherwise tag autocomplete overlay gets cut off */ + /* Actions */ - &.active:not(.activating) .bulk-edit-bar { - overflow: visible; - } - - /* make sticky pagination expand to cover checkboxes to the left */ - - &.active .bookmark-pagination.sticky:before { - content: ''; - position: absolute; - top: -1px; - bottom: 0; - left: calc(-1 * calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset))); - width: calc(var(--bulk-edit-toggle-width) + var(--bulk-edit-toggle-offset)); - background: var(--body-color); - border-top: solid 1px var(--secondary-border-color); - } - - /* All checkbox */ + & .bulk-edit-actions { + display: flex; + align-items: center; + padding: var(--unit-1) 0; + border-top: solid 1px var(--secondary-border-color); + gap: var(--unit-2); - & .form-checkbox.bulk-edit-checkbox.all { - display: block; - width: var(--bulk-edit-toggle-width); - margin: 0 0 0 var(--bulk-edit-toggle-offset); - padding: 0; + & button { + --control-padding-x-sm: 0; } - /* Bookmark checkboxes */ - - & li[ld-bookmark-item] .form-checkbox.bulk-edit-checkbox { - display: block; - position: absolute; - width: var(--bulk-edit-toggle-width); - min-height: var(--bulk-edit-toggle-width); - left: calc(-1 * var(--bulk-edit-toggle-width) - var(--bulk-edit-toggle-offset)); - top: 50%; - transform: translateY(-50%); - padding: 0; - margin: 0; - visibility: hidden; - opacity: 0; - transition: all var(--bulk-edit-transition-duration); - - .form-icon { - top: 0; - } + & button:hover { + text-decoration: underline; } - &.active li[ld-bookmark-item] .form-checkbox.bulk-edit-checkbox { - visibility: visible; - opacity: 1; + & > input, + & .form-autocomplete, + & select { + width: auto; + max-width: 140px; + -webkit-appearance: none; } - /* Actions */ - - & .bulk-edit-actions { - display: flex; - align-items: center; - padding: var(--unit-1) 0; - border-top: solid 1px var(--secondary-border-color); - gap: var(--unit-2); - - & button { - --control-padding-x-sm: 0; - } - - & button:hover { - text-decoration: underline; - } - - & > input, - & .form-autocomplete, - & select { - width: auto; - max-width: 140px; - -webkit-appearance: none; - } - - & .select-across { - margin: 0 0 0 auto; - font-size: var(--font-size-sm); - } + & .select-across { + margin: 0 0 0 auto; + font-size: var(--font-size-sm); } + } } diff --git a/bookmarks/styles/components.css b/bookmarks/styles/components.css index 9df1bdfe..d6251964 100644 --- a/bookmarks/styles/components.css +++ b/bookmarks/styles/components.css @@ -2,64 +2,64 @@ /* Content area component */ section.content-area { - h2 { - font-size: var(--font-size-lg); - } + h2 { + font-size: var(--font-size-lg); + } - .content-area-header { - border-bottom: solid 1px var(--secondary-border-color); - display: flex; - flex-wrap: wrap; - column-gap: var(--unit-5); - padding-bottom: var(--unit-2); - margin-bottom: var(--unit-4); + .content-area-header { + border-bottom: solid 1px var(--secondary-border-color); + display: flex; + flex-wrap: wrap; + column-gap: var(--unit-5); + padding-bottom: var(--unit-2); + margin-bottom: var(--unit-4); - h2 { - flex: 0 0 auto; - line-height: var(--unit-9); - margin: 0; - } + h2 { + flex: 0 0 auto; + line-height: var(--unit-9); + margin: 0; + } - .header-controls { - flex: 1 1 0; - display: flex; - } + .header-controls { + flex: 1 1 0; + display: flex; } + } } @media (max-width: 600px) { - section.content-area .content-area-header { - flex-direction: column; - } + section.content-area .content-area-header { + flex-direction: column; + } } /* Confirm button component */ span.confirmation { - display: flex; - align-items: baseline; - gap: var(--unit-1); - color: var(--error-color) !important; + display: flex; + align-items: baseline; + gap: var(--unit-1); + color: var(--error-color) !important; - svg { - align-self: center; - } + svg { + align-self: center; + } - .btn.btn-link { - color: var(--error-color) !important; + .btn.btn-link { + color: var(--error-color) !important; - &:hover { - text-decoration: underline; - } + &:hover { + text-decoration: underline; } + } } /* Divider */ .divider { - border-bottom: solid 1px var(--secondary-border-color); - margin: var(--unit-5) 0; + border-bottom: solid 1px var(--secondary-border-color); + margin: var(--unit-5) 0; } /* Turbo progress bar */ .turbo-progress-bar { - background-color: var(--primary-color); + background-color: var(--primary-color); } diff --git a/bookmarks/styles/layout.css b/bookmarks/styles/layout.css index fb759f40..698a8dd2 100644 --- a/bookmarks/styles/layout.css +++ b/bookmarks/styles/layout.css @@ -1,39 +1,39 @@ /* Main layout */ body { - margin: 20px 10px; + margin: 20px 10px; - @media (min-width: 600px) { - /* Horizontal offset accounts for checkboxes that show up in bulk edit mode */ - margin: 20px 32px; - } + @media (min-width: 600px) { + /* Horizontal offset accounts for checkboxes that show up in bulk edit mode */ + margin: 20px 32px; + } } header { - margin-bottom: var(--unit-9); + margin-bottom: var(--unit-9); - .logo { - width: 28px; - height: 28px; - } + .logo { + width: 28px; + height: 28px; + } - a:hover { - text-decoration: none; - } + a:hover { + text-decoration: none; + } - h1 { - margin: 0 0 0 var(--unit-3); - font-size: var(--font-size-lg); - } + h1 { + margin: 0 0 0 var(--unit-3); + font-size: var(--font-size-lg); + } } header .toasts { - margin-bottom: 20px; + margin-bottom: 20px; - .toast { - margin-bottom: 0.4rem; - } + .toast { + margin-bottom: 0.4rem; + } - .toast a.btn-clear:visited { - color: currentColor; - } + .toast a.btn-clear:visited { + color: currentColor; + } } diff --git a/bookmarks/styles/markdown.css b/bookmarks/styles/markdown.css index f75460ce..a85ea407 100644 --- a/bookmarks/styles/markdown.css +++ b/bookmarks/styles/markdown.css @@ -1,40 +1,46 @@ .markdown { - & p, & ul, & ol, & pre, & blockquote { - margin: 0 0 var(--unit-2) 0; - } + & p, + & ul, + & ol, + & pre, + & blockquote { + margin: 0 0 var(--unit-2) 0; + } - & > *:first-child { - margin-top: 0; - } + & > *:first-child { + margin-top: 0; + } - & > *:last-child { - margin-bottom: 0; - } + & > *:last-child { + margin-bottom: 0; + } - & ul, & ol { - margin-left: var(--unit-4); - } + & ul, + & ol { + margin-left: var(--unit-4); + } - & ul li, & ol li { - margin-top: var(--unit-1); - } + & ul li, + & ol li { + margin-top: var(--unit-1); + } - & pre { - padding: var(--unit-1) var(--unit-2); - background-color: var(--code-bg-color); - border-radius: var(--unit-1); - overflow-x: auto; - } + & pre { + padding: var(--unit-1) var(--unit-2); + background-color: var(--code-bg-color); + border-radius: var(--unit-1); + overflow-x: auto; + } - & pre code { - background: none; - box-shadow: none; - padding: 0; - } + & pre code { + background: none; + box-shadow: none; + padding: 0; + } - & > pre:first-child:last-child { - padding: 0; - background: none; - border-radius: 0; - } + & > pre:first-child:last-child { + padding: 0; + background: none; + border-radius: 0; + } } diff --git a/bookmarks/styles/reader-mode.css b/bookmarks/styles/reader-mode.css index cea137b3..efe7c198 100644 --- a/bookmarks/styles/reader-mode.css +++ b/bookmarks/styles/reader-mode.css @@ -24,4 +24,3 @@ html.reader-mode { height: auto; } } - diff --git a/bookmarks/styles/settings.css b/bookmarks/styles/settings.css index d60dfac1..0b24838c 100644 --- a/bookmarks/styles/settings.css +++ b/bookmarks/styles/settings.css @@ -12,7 +12,7 @@ box-sizing: border-box; } - .input-group > input[type=submit] { + .input-group > input[type="submit"] { height: auto; } diff --git a/bookmarks/styles/theme-dark.css b/bookmarks/styles/theme-dark.css index 6f4f8000..48585f21 100644 --- a/bookmarks/styles/theme-dark.css +++ b/bookmarks/styles/theme-dark.css @@ -1,143 +1,143 @@ @import "theme-light.css"; :root { - /* Color palette */ - --contrast-5: hsla(241, 65%, 85%, 0.06); - --contrast-10: hsla(241, 60%, 80%, 0.14); - --contrast-20: hsla(241, 64%, 82%, 0.23); - --contrast-30: hsla(241, 69%, 84%, 0.32); - --contrast-40: hsla(241, 73%, 86%, 0.41); - --contrast-50: hsla(241, 78%, 88%, 0.5); - --contrast-60: hsla(241, 82%, 90%, 0.58); - --contrast-70: hsla(241, 87%, 92%, 0.69); - --contrast-80: hsla(241, 91%, 94%, 0.8); - --contrast-90: hsla(241, 96%, 96%, 0.9); - - --primary-color: hsl(241, 75%, 64%); - --primary-color-highlight: hsl(241, 75%, 68%); - --primary-color-shade: hsl(241, 75%, 64%, 0.42); - - --alternative-color: hsl(179, 50%, 58%); - --alternative-color-dark: hsl(179, 80%, 75%); - - --success-color: hsl(142, 76%, 36%); - --success-color-highlight: hsl(142, 76%, 40%); - --success-color-shade: hsla(142, 76%, 36%, 0.1); - - --warning-color: hsl(38, 92%, 50%); - --warning-color-highlight: hsl(38, 92%, 55%); - --warning-color-shade: hsla(38, 92%, 50%, 0.1); - - --error-color: hsl(0, 80%, 60%); - --error-color-highlight: hsl(0, 72%, 60%); - --error-color-shade: hsla(0, 72%, 51%, 0.1); - - /* Core colors */ - --text-color: var(--gray-300); - --secondary-text-color: var(--gray-400); - --tertiary-text-color: var(--gray-500); - --contrast-text-color: #fff; - --primary-text-color: hsl(241, 82%, 82%); - - --link-color: var(--primary-text-color); - --secondary-link-color: hsla(241, 82%, 82%, 0.8); - - --icon-color: var(--text-color); - - --border-color: var(--contrast-30); - --secondary-border-color: var(--contrast-20); - - --body-color: hsl(241, 15%, 14%); - --body-color-contrast: var(--contrast-10); - - /* Focus */ - --focus-outline: 2px solid hsl(241, 100%, 78%); - --focus-outline-offset: 2px; - - /* Shadows */ - --box-shadow-xs: none; - --box-shadow: none; - --box-shadow-lg: none; + /* Color palette */ + --contrast-5: hsla(241, 65%, 85%, 0.06); + --contrast-10: hsla(241, 60%, 80%, 0.14); + --contrast-20: hsla(241, 64%, 82%, 0.23); + --contrast-30: hsla(241, 69%, 84%, 0.32); + --contrast-40: hsla(241, 73%, 86%, 0.41); + --contrast-50: hsla(241, 78%, 88%, 0.5); + --contrast-60: hsla(241, 82%, 90%, 0.58); + --contrast-70: hsla(241, 87%, 92%, 0.69); + --contrast-80: hsla(241, 91%, 94%, 0.8); + --contrast-90: hsla(241, 96%, 96%, 0.9); + + --primary-color: hsl(241, 75%, 64%); + --primary-color-highlight: hsl(241, 75%, 68%); + --primary-color-shade: hsl(241, 75%, 64%, 0.42); + + --alternative-color: hsl(179, 50%, 58%); + --alternative-color-dark: hsl(179, 80%, 75%); + + --success-color: hsl(142, 76%, 36%); + --success-color-highlight: hsl(142, 76%, 40%); + --success-color-shade: hsla(142, 76%, 36%, 0.1); + + --warning-color: hsl(38, 92%, 50%); + --warning-color-highlight: hsl(38, 92%, 55%); + --warning-color-shade: hsla(38, 92%, 50%, 0.1); + + --error-color: hsl(0, 80%, 60%); + --error-color-highlight: hsl(0, 72%, 60%); + --error-color-shade: hsla(0, 72%, 51%, 0.1); + + /* Core colors */ + --text-color: var(--gray-300); + --secondary-text-color: var(--gray-400); + --tertiary-text-color: var(--gray-500); + --contrast-text-color: #fff; + --primary-text-color: hsl(241, 82%, 82%); + + --link-color: var(--primary-text-color); + --secondary-link-color: hsla(241, 82%, 82%, 0.8); + + --icon-color: var(--text-color); + + --border-color: var(--contrast-30); + --secondary-border-color: var(--contrast-20); + + --body-color: hsl(241, 15%, 14%); + --body-color-contrast: var(--contrast-10); + + /* Focus */ + --focus-outline: 2px solid hsl(241, 100%, 78%); + --focus-outline-offset: 2px; + + /* Shadows */ + --box-shadow-xs: none; + --box-shadow: none; + --box-shadow-lg: none; } :root { - --input-bg-color: var(--contrast-5); - --input-disabled-bg-color: var(--contrast-30); - --input-text-color: var(--text-color); - --input-hint-color: var(--secondary-text-color); - --input-border-color: var(--border-color); - --input-placeholder-color: var(--tertiary-text-color); - --input-box-shadow: var(--box-shadow-xs); - - --checkbox-bg-color: var(--contrast-10); - --checkbox-checked-bg-color: var(--primary-color); - --checkbox-disabled-bg-color: var(--contrast-30); - --checkbox-border-color: var(--border-color); - --checkbox-icon-color: #fff; - - --switch-bg-color: var(--contrast-10); - --switch-border-color: var(--border-color); - --switch-toggle-color: var(--text-color); + --input-bg-color: var(--contrast-5); + --input-disabled-bg-color: var(--contrast-30); + --input-text-color: var(--text-color); + --input-hint-color: var(--secondary-text-color); + --input-border-color: var(--border-color); + --input-placeholder-color: var(--tertiary-text-color); + --input-box-shadow: var(--box-shadow-xs); + + --checkbox-bg-color: var(--contrast-10); + --checkbox-checked-bg-color: var(--primary-color); + --checkbox-disabled-bg-color: var(--contrast-30); + --checkbox-border-color: var(--border-color); + --checkbox-icon-color: #fff; + + --switch-bg-color: var(--contrast-10); + --switch-border-color: var(--border-color); + --switch-toggle-color: var(--text-color); } :root { - --btn-bg-color: var(--contrast-5); - --btn-hover-bg-color: var(--contrast-20); - --btn-border-color: var(--border-color); - --btn-text-color: var(--text-color); - --btn-icon-color: var(--icon-color); - --btn-font-weight: 400; - --btn-box-shadow: var(--box-shadow-xs); - - --btn-primary-bg-color: var(--primary-color); - --btn-primary-hover-bg-color: var(--primary-color-highlight); - --btn-primary-text-color: var(--contrast-text-color); - - --btn-success-bg-color: var(--success-color); - --btn-success-hover-bg-color: var(--success-color-highlight); - --btn-success-text-color: var(--contrast-text-color); - - --btn-error-bg-color: var(--error-color); - --btn-error-hover-bg-color: var(--error-color-highlight); - --btn-error-text-color: var(--contrast-text-color); - - --btn-link-text-color: var(--link-color); - --btn-link-hover-text-color: var(--link-color); + --btn-bg-color: var(--contrast-5); + --btn-hover-bg-color: var(--contrast-20); + --btn-border-color: var(--border-color); + --btn-text-color: var(--text-color); + --btn-icon-color: var(--icon-color); + --btn-font-weight: 400; + --btn-box-shadow: var(--box-shadow-xs); + + --btn-primary-bg-color: var(--primary-color); + --btn-primary-hover-bg-color: var(--primary-color-highlight); + --btn-primary-text-color: var(--contrast-text-color); + + --btn-success-bg-color: var(--success-color); + --btn-success-hover-bg-color: var(--success-color-highlight); + --btn-success-text-color: var(--contrast-text-color); + + --btn-error-bg-color: var(--error-color); + --btn-error-hover-bg-color: var(--error-color-highlight); + --btn-error-text-color: var(--contrast-text-color); + + --btn-link-text-color: var(--link-color); + --btn-link-hover-text-color: var(--link-color); } :root { - --modal-overlay-bg-color: hsla(229, 21%, 16%, 0.55); - --modal-container-bg-color: hsl(241, 20%, 20%); - --modal-container-border-color: var(--contrast-30); - --modal-border-radius: var(--border-radius-lg); - --modal-box-shadow: none; + --modal-overlay-bg-color: hsla(229, 21%, 16%, 0.55); + --modal-container-bg-color: hsl(241, 20%, 20%); + --modal-container-border-color: var(--contrast-30); + --modal-border-radius: var(--border-radius-lg); + --modal-box-shadow: none; } :root { - --menu-bg-color: hsl(241, 20%, 20%); - --menu-border-color: var(--contrast-30); - --menu-border-radius: var(--border-radius); - --menu-box-shadow: none; - --menu-item-color: var(--text-color); - --menu-item-hover-color: var(--text-color); - --menu-item-bg-color: transparent; - --menu-item-hover-bg-color: var(--contrast-20); + --menu-bg-color: hsl(241, 20%, 20%); + --menu-border-color: var(--contrast-30); + --menu-border-radius: var(--border-radius); + --menu-box-shadow: none; + --menu-item-color: var(--text-color); + --menu-item-hover-color: var(--text-color); + --menu-item-bg-color: transparent; + --menu-item-hover-bg-color: var(--contrast-20); } :root { - --tab-color: var(--text-color); - --tab-hover-color: var(--primary-text-color); - --tab-active-color: var(--primary-text-color); - --tab-highlight-color: var(--primary-text-color); + --tab-color: var(--text-color); + --tab-hover-color: var(--primary-text-color); + --tab-active-color: var(--primary-text-color); + --tab-highlight-color: var(--primary-text-color); } :root { - --bookmark-title-color: var(--primary-text-color); - --bookmark-title-weight: 500; - --bookmark-description-color: var(--text-color); - --bookmark-description-weight: 400; - --bookmark-actions-color: var(--secondary-text-color); - --bookmark-actions-hover-color: var(--text-color); - --bookmark-actions-weight: 400; - --bulk-actions-bg-color: var(--contrast-5); -} \ No newline at end of file + --bookmark-title-color: var(--primary-text-color); + --bookmark-title-weight: 500; + --bookmark-description-color: var(--text-color); + --bookmark-description-weight: 400; + --bookmark-actions-color: var(--secondary-text-color); + --bookmark-actions-hover-color: var(--text-color); + --bookmark-actions-weight: 400; + --bulk-actions-bg-color: var(--contrast-5); +} diff --git a/bookmarks/styles/theme/_normalize.css b/bookmarks/styles/theme/_normalize.css index db945bda..181c2a6b 100644 --- a/bookmarks/styles/theme/_normalize.css +++ b/bookmarks/styles/theme/_normalize.css @@ -61,7 +61,8 @@ h1 { figcaption, figure, -main { /* 1 */ +main { + /* 1 */ display: block; } @@ -256,7 +257,8 @@ textarea { */ button, -input { /* 1 */ +input { + /* 1 */ overflow: visible; } @@ -266,7 +268,8 @@ input { /* 1 */ */ button, -select { /* 1 */ +select { + /* 1 */ text-transform: none; } @@ -299,7 +302,6 @@ button::-moz-focus-inner, * Restore the focus styles unset by the previous rule (removed). */ - /** * Change the border, margin, and padding in all browsers (opinionated) (changed). */ diff --git a/bookmarks/styles/theme/animations.css b/bookmarks/styles/theme/animations.css index 53663767..e27900de 100644 --- a/bookmarks/styles/theme/animations.css +++ b/bookmarks/styles/theme/animations.css @@ -1,38 +1,38 @@ /* Animations */ @keyframes loading { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } } @keyframes slide-down { - 0% { - opacity: 0; - transform: translateY(calc(-1 * var(--unit-8))); - } - 100% { - opacity: 1; - transform: translateY(0); - } + 0% { + opacity: 0; + transform: translateY(calc(-1 * var(--unit-8))); + } + 100% { + opacity: 1; + transform: translateY(0); + } } @keyframes fade-in { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } } @keyframes fade-out { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } } diff --git a/bookmarks/styles/theme/asian.css b/bookmarks/styles/theme/asian.css index 537884c9..d2b33db9 100644 --- a/bookmarks/styles/theme/asian.css +++ b/bookmarks/styles/theme/asian.css @@ -3,41 +3,41 @@ html:lang(zh), html:lang(zh-Hans), .lang-zh, .lang-zh-hans { - font-family: var(--cjk-zh-hans-font-family); + font-family: var(--cjk-zh-hans-font-family); } html:lang(zh-Hant), .lang-zh-hant { - font-family: var(--cjk-zh-hant-font-family); + font-family: var(--cjk-zh-hant-font-family); } html:lang(ja), .lang-ja { - font-family: var(--cjk-jp-font-family); + font-family: var(--cjk-jp-font-family); } html:lang(ko), .lang-ko { - font-family: var(--cjk-ko-font-family); + font-family: var(--cjk-ko-font-family); } :lang(zh), :lang(ja), .lang-cjk { - & ins, - & u { - border-bottom: var(--border-width) solid; - text-decoration: none; - } + & ins, + & u { + border-bottom: var(--border-width) solid; + text-decoration: none; + } - & del + del, - & del + s, - & ins + ins, - & ins + u, - & s + del, - & s + s, - & u + ins, - & u + u { - margin-left: .125em; - } + & del + del, + & del + s, + & ins + ins, + & ins + u, + & s + del, + & s + s, + & u + ins, + & u + u { + margin-left: 0.125em; + } } diff --git a/bookmarks/styles/theme/autocomplete.css b/bookmarks/styles/theme/autocomplete.css index 7ab2b213..d202df85 100644 --- a/bookmarks/styles/theme/autocomplete.css +++ b/bookmarks/styles/theme/autocomplete.css @@ -1,55 +1,57 @@ /* Autocomplete */ .form-autocomplete { - position: relative; + position: relative; - & .form-autocomplete-input { - align-content: flex-start; - display: flex; - flex-wrap: wrap; - height: auto; - min-height: var(--unit-8); - padding: var(--unit-h); - background: var(--input-bg-color); + & .form-autocomplete-input { + align-content: flex-start; + display: flex; + flex-wrap: wrap; + height: auto; + min-height: var(--unit-8); + padding: var(--unit-h); + background: var(--input-bg-color); - &.is-focused { - outline: var(--focus-outline); - outline-offset: calc(var(--focus-outline-offset) * -1); - } + &.is-focused { + outline: var(--focus-outline); + outline-offset: calc(var(--focus-outline-offset) * -1); + } - & .form-input { - background: transparent; - border-color: transparent; - box-shadow: none; - display: inline-block; - flex: 1 0 auto; - height: var(--unit-6); - line-height: var(--unit-4); - margin: var(--unit-h); - width: auto; + & .form-input { + background: transparent; + border-color: transparent; + box-shadow: none; + display: inline-block; + flex: 1 0 auto; + height: var(--unit-6); + line-height: var(--unit-4); + margin: var(--unit-h); + width: auto; - &:focus { - outline: none; - } - } + &:focus { + outline: none; + } } + } - & .menu { - left: 0; - position: absolute; - top: 100%; - width: 100%; + & .menu { + left: 0; + position: absolute; + top: 100%; + width: 100%; - & .menu-item.selected > a, & .menu-item > a:hover { - background: var(--menu-item-hover-bg-color); - color: var(--menu-item-hover-color); - } + & .menu-item.selected > a, + & .menu-item > a:hover { + background: var(--menu-item-hover-bg-color); + color: var(--menu-item-hover-color); + } - & .group-item, & .group-item:hover { - color: var(--tertiary-text-color); - text-transform: uppercase; - background: none; - font-size: 0.6rem; - font-weight: bold; - } + & .group-item, + & .group-item:hover { + color: var(--tertiary-text-color); + text-transform: uppercase; + background: none; + font-size: 0.6rem; + font-weight: bold; } -} \ No newline at end of file + } +} diff --git a/bookmarks/styles/theme/badges.css b/bookmarks/styles/theme/badges.css index 4657cfc3..8d94e72b 100644 --- a/bookmarks/styles/theme/badges.css +++ b/bookmarks/styles/theme/badges.css @@ -1,64 +1,64 @@ /* Badges */ .badge { - position: relative; - white-space: nowrap; + position: relative; + white-space: nowrap; - &[data-badge], - &:not([data-badge]) { - &::after { - background: var(--primary-color); - background-clip: padding-box; - border-radius: .5rem; - box-shadow: 0 0 0 1px var(--body-color); - color: var(--contrast-text-color); - content: attr(data-badge); - display: inline-block; - transform: translate(-.05rem, -.5rem); - } + &[data-badge], + &:not([data-badge]) { + &::after { + background: var(--primary-color); + background-clip: padding-box; + border-radius: 0.5rem; + box-shadow: 0 0 0 1px var(--body-color); + color: var(--contrast-text-color); + content: attr(data-badge); + display: inline-block; + transform: translate(-0.05rem, -0.5rem); } + } - &[data-badge] { - &::after { - font-size: var(--font-size-sm); - height: .9rem; - line-height: 1; - min-width: .9rem; - padding: .1rem .2rem; - text-align: center; - white-space: nowrap; - } + &[data-badge] { + &::after { + font-size: var(--font-size-sm); + height: 0.9rem; + line-height: 1; + min-width: 0.9rem; + padding: 0.1rem 0.2rem; + text-align: center; + white-space: nowrap; } + } - &:not([data-badge]), - &[data-badge=""] { - &::after { - height: 6px; - min-width: 6px; - padding: 0; - width: 6px; - } + &:not([data-badge]), + &[data-badge=""] { + &::after { + height: 6px; + min-width: 6px; + padding: 0; + width: 6px; } + } - /* Badges for Buttons */ + /* Badges for Buttons */ - &.btn { - &::after { - position: absolute; - top: 0; - right: 0; - transform: translate(50%, -50%); - } + &.btn { + &::after { + position: absolute; + top: 0; + right: 0; + transform: translate(50%, -50%); } + } - /* Badges for Avatars */ + /* Badges for Avatars */ - &.avatar { - &::after { - position: absolute; - top: 14.64%; - right: 14.64%; - transform: translate(50%, -50%); - z-index: var(--zindex-1); - } + &.avatar { + &::after { + position: absolute; + top: 14.64%; + right: 14.64%; + transform: translate(50%, -50%); + z-index: var(--zindex-1); } + } } diff --git a/bookmarks/styles/theme/base.css b/bookmarks/styles/theme/base.css index b6ec74dd..4bd64d8d 100644 --- a/bookmarks/styles/theme/base.css +++ b/bookmarks/styles/theme/base.css @@ -2,60 +2,60 @@ *, *::before, *::after { - box-sizing: inherit; + box-sizing: inherit; } html { - box-sizing: border-box; - font-size: var(--html-font-size); - line-height: var(--html-line-height); - -webkit-tap-highlight-color: transparent; - scrollbar-gutter: stable; + box-sizing: border-box; + font-size: var(--html-font-size); + line-height: var(--html-line-height); + -webkit-tap-highlight-color: transparent; + scrollbar-gutter: stable; } /* Reserve space for vert. scrollbar to avoid layout shifting when scrollbars are added */ html { - scrollbar-gutter: stable; + scrollbar-gutter: stable; } @media (pointer: coarse) { - html { - scrollbar-gutter: initial; - } + html { + scrollbar-gutter: initial; + } } body { - background: var(--body-color); - color: var(--text-color); - font-family: var(--body-font-family); - font-size: var(--font-size); - overflow-x: hidden; - text-rendering: optimizeLegibility; + background: var(--body-color); + color: var(--text-color); + font-family: var(--body-font-family); + font-size: var(--font-size); + overflow-x: hidden; + text-rendering: optimizeLegibility; } a { - color: var(--link-color); - outline: none; - text-decoration: none; + color: var(--link-color); + outline: none; + text-decoration: none; } a:focus-visible { - outline: var(--focus-outline); - outline-offset: var(--focus-outline-offset); + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); } a:focus, a:hover, a:active, a.active { - text-decoration: underline; + text-decoration: underline; } summary { - cursor: pointer; + cursor: pointer; } summary:focus-visible { - outline: var(--focus-outline); - outline-offset: var(--focus-outline-offset); + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); } diff --git a/bookmarks/styles/theme/buttons.css b/bookmarks/styles/theme/buttons.css index 56e61102..21bb7e3b 100644 --- a/bookmarks/styles/theme/buttons.css +++ b/bookmarks/styles/theme/buttons.css @@ -1,264 +1,268 @@ /* Buttons */ :root { - --btn-bg-color: var(--body-color); - --btn-hover-bg-color: var(--gray-50); - --btn-border-color: var(--border-color); - --btn-text-color: var(--text-color); - --btn-icon-color: var(--icon-color); - --btn-font-weight: 400; - --btn-box-shadow: var(--box-shadow-xs); - - --btn-primary-bg-color: var(--primary-color); - --btn-primary-hover-bg-color: var(--primary-color-highlight); - --btn-primary-text-color: var(--contrast-text-color); - - --btn-success-bg-color: var(--success-color); - --btn-success-hover-bg-color: var(--success-color-highlight); - --btn-success-text-color: var(--contrast-text-color); - - --btn-error-bg-color: var(--error-color); - --btn-error-hover-bg-color: var(--error-color-highlight); - --btn-error-text-color: var(--contrast-text-color); - - --btn-link-text-color: var(--link-color); - --btn-link-hover-text-color: var(--link-color); + --btn-bg-color: var(--body-color); + --btn-hover-bg-color: var(--gray-50); + --btn-border-color: var(--border-color); + --btn-text-color: var(--text-color); + --btn-icon-color: var(--icon-color); + --btn-font-weight: 400; + --btn-box-shadow: var(--box-shadow-xs); + + --btn-primary-bg-color: var(--primary-color); + --btn-primary-hover-bg-color: var(--primary-color-highlight); + --btn-primary-text-color: var(--contrast-text-color); + + --btn-success-bg-color: var(--success-color); + --btn-success-hover-bg-color: var(--success-color-highlight); + --btn-success-text-color: var(--contrast-text-color); + + --btn-error-bg-color: var(--error-color); + --btn-error-hover-bg-color: var(--error-color-highlight); + --btn-error-text-color: var(--contrast-text-color); + + --btn-link-text-color: var(--link-color); + --btn-link-hover-text-color: var(--link-color); } .btn { - appearance: none; - background: var(--btn-bg-color); - border: var(--border-width) solid var(--btn-border-color); - border-radius: var(--border-radius); - color: var(--btn-text-color); - font-weight: var(--btn-font-weight); - cursor: pointer; - display: inline-flex; - align-items: baseline; - justify-content: center; - font-size: var(--font-size); - height: var(--control-size); - line-height: var(--line-height); - outline: none; - padding: var(--control-padding-y) var(--control-padding-x); - box-shadow: var(--btn-box-shadow); - text-align: center; + appearance: none; + background: var(--btn-bg-color); + border: var(--border-width) solid var(--btn-border-color); + border-radius: var(--border-radius); + color: var(--btn-text-color); + font-weight: var(--btn-font-weight); + cursor: pointer; + display: inline-flex; + align-items: baseline; + justify-content: center; + font-size: var(--font-size); + height: var(--control-size); + line-height: var(--line-height); + outline: none; + padding: var(--control-padding-y) var(--control-padding-x); + box-shadow: var(--btn-box-shadow); + text-align: center; + text-decoration: none; + transition: + background 0.2s, + border 0.2s, + box-shadow 0.2s, + color 0.2s; + user-select: none; + vertical-align: middle; + white-space: nowrap; + + &:focus-visible { + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); + } + + &:hover { + background: var(--btn-hover-bg-color); text-decoration: none; - transition: background 0.2s, border 0.2s, box-shadow 0.2s, color 0.2s; - user-select: none; - vertical-align: middle; - white-space: nowrap; - - &:focus-visible { - outline: var(--focus-outline); - outline-offset: var(--focus-outline-offset); - } + } + + &[disabled], + &:disabled, + &.disabled { + cursor: default; + opacity: 0.5; + pointer-events: none; + } + + &:focus, + &:hover, + &:active, + &.active { + text-decoration: none; + } + + /* Button Primary */ + + &.btn-primary { + background: var(--btn-primary-bg-color); + border-color: transparent; + color: var(--btn-primary-text-color); + --btn-icon-color: var(--btn-primary-text-color); &:hover { - background: var(--btn-hover-bg-color); - text-decoration: none; + background: var(--btn-primary-hover-bg-color); } - &[disabled], - &:disabled, - &.disabled { - cursor: default; - opacity: 0.5; - pointer-events: none; + &.loading { + &::after { + border-bottom-color: var(--btn-primary-text-color); + border-left-color: var(--btn-primary-text-color); + } } + } - &:focus, - &:hover, - &:active, - &.active { - text-decoration: none; - } + /* Button Colors */ - /* Button Primary */ + &.btn-success { + background: var(--btn-success-bg-color); + border-color: transparent; + color: var(--btn-success-text-color); + --btn-icon-color: var(--btn-success-text-color); - &.btn-primary { - background: var(--btn-primary-bg-color); - border-color: transparent; - color: var(--btn-primary-text-color); - --btn-icon-color: var(--btn-primary-text-color); + &:hover { + background: var(--btn-success-hover-bg-color); + } + } - &:hover { - background: var(--btn-primary-hover-bg-color); - } + &.btn-error { + --btn-border-color: var(--error-color); + --btn-text-color: var(--error-color); - &.loading { - &::after { - border-bottom-color: var(--btn-primary-text-color); - border-left-color: var(--btn-primary-text-color); - } - } + &:hover { + --btn-hover-bg-color: var(--error-color-shade); } + } - /* Button Colors */ + /* Button Link */ - &.btn-success { - background: var(--btn-success-bg-color); - border-color: transparent; - color: var(--btn-success-text-color); - --btn-icon-color: var(--btn-success-text-color); + &.btn-link { + background: transparent; + border-color: transparent; + box-shadow: none; + color: var(--btn-link-text-color); + --btn-icon-color: var(--btn-link-text-color); - &:hover { - background: var(--btn-success-hover-bg-color); - } + &:hover { + color: var(--btn-link-hover-text-color); + --btn-icon-color: var(--btn-link-hover-text-color); } - &.btn-error { - --btn-border-color: var(--error-color); - --btn-text-color: var(--error-color); - - &:hover { - --btn-hover-bg-color: var(--error-color-shade); - } + &:focus, + &:hover, + &:active, + &.active { + text-decoration: none; } + } - /* Button Link */ - - &.btn-link { - background: transparent; - border-color: transparent; - box-shadow: none; - color: var(--btn-link-text-color); - --btn-icon-color: var(--btn-link-text-color); - - &:hover { - color: var(--btn-link-hover-text-color); - --btn-icon-color: var(--btn-link-hover-text-color); - } - - &:focus, - &:hover, - &:active, - &.active { - text-decoration: none; - } - } + /* Button Sizes */ + + &.btn-sm { + font-size: var(--font-size-sm); + height: var(--control-size-sm); + padding: var(--control-padding-y-sm) var(--control-padding-x-sm); + } + + &.btn-lg { + font-size: var(--font-size-lg); + height: var(--control-size-lg); + padding: var(--control-padding-y-lg) var(--control-padding-x-lg); + } + + /* Button Block */ - /* Button Sizes */ + &.btn-block { + display: block; + width: 100%; + } + + /* Button Action */ + + &.btn-action { + width: var(--control-size); + padding-left: 0; + padding-right: 0; &.btn-sm { - font-size: var(--font-size-sm); - height: var(--control-size-sm); - padding: var(--control-padding-y-sm) var(--control-padding-x-sm); + width: var(--control-size-sm); } &.btn-lg { - font-size: var(--font-size-lg); - height: var(--control-size-lg); - padding: var(--control-padding-y-lg) var(--control-padding-x-lg); + width: var(--control-size-lg); } + } + + /* Button Clear */ + + &.btn-clear { + background: transparent; + border: 0; + color: currentColor; + box-shadow: none; + height: var(--unit-5); + line-height: var(--unit-4); + margin-left: var(--unit-1); + margin-right: -2px; + opacity: 1; + padding: var(--unit-h); + text-decoration: none; + width: var(--unit-5); - /* Button Block */ - - &.btn-block { - display: block; - width: 100%; + &::before { + content: "\2715"; } + } - /* Button Action */ + /* Wider button */ - &.btn-action { - width: var(--control-size); - padding-left: 0; - padding-right: 0; + &.btn-wide { + padding-left: var(--unit-6); + padding-right: var(--unit-6); + } - &.btn-sm { - width: var(--control-size-sm); - } + /* Small icon button */ - &.btn-lg { - width: var(--control-size-lg); - } - } + &.btn-sm.btn-icon { + display: inline-flex; + align-items: baseline; + gap: var(--unit-h); - /* Button Clear */ - - &.btn-clear { - background: transparent; - border: 0; - color: currentColor; - box-shadow: none; - height: var(--unit-5); - line-height: var(--unit-4); - margin-left: var(--unit-1); - margin-right: -2px; - opacity: 1; - padding: var(--unit-h); - text-decoration: none; - width: var(--unit-5); - - &::before { - content: "\2715"; - } + svg { + align-self: center; } + } - /* Wider button */ + /* Button icons */ - &.btn-wide { - padding-left: var(--unit-6); - padding-right: var(--unit-6); - } + & svg { + color: var(--btn-icon-color); + align-self: center; + } +} - /* Small icon button */ +/* Button groups */ +.btn-group { + display: inline-flex; + flex-wrap: wrap; - &.btn-sm.btn-icon { - display: inline-flex; - align-items: baseline; - gap: var(--unit-h); + .btn { + flex: 1 0 auto; - svg { - align-self: center; - } + &:first-child:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } - /* Button icons */ - - & svg { - color: var(--btn-icon-color); - align-self: center; + &:not(:first-child):not(:last-child) { + border-radius: 0; + margin-left: calc(-1 * var(--border-width)); } -} -/* Button groups */ -.btn-group { - display: inline-flex; - flex-wrap: wrap; + &:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + margin-left: calc(-1 * var(--border-width)); + } - .btn { - flex: 1 0 auto; - - &:first-child:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - &:not(:first-child):not(:last-child) { - border-radius: 0; - margin-left: calc(-1 * var(--border-width)); - } - - &:last-child:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - margin-left: calc(-1 * var(--border-width)); - } - - &:focus, - &:hover, - &:active, - &.active { - z-index: var(--zindex-0); - } + &:focus, + &:hover, + &:active, + &.active { + z-index: var(--zindex-0); } + } - &.btn-group-block { - display: flex; + &.btn-group-block { + display: flex; - .btn { - flex: 1 0 0; - } + .btn { + flex: 1 0 0; } -} \ No newline at end of file + } +} diff --git a/bookmarks/styles/theme/code.css b/bookmarks/styles/theme/code.css index 326d32da..3f3b1a32 100644 --- a/bookmarks/styles/theme/code.css +++ b/bookmarks/styles/theme/code.css @@ -1,30 +1,30 @@ /* Code */ :root { - --code-bg-color: var(--body-color-contrast); - --code-color: var(--text-color); + --code-bg-color: var(--body-color-contrast); + --code-color: var(--text-color); } code { - border-radius: var(--border-radius); - line-height: 1.25; - padding: .1rem .2rem; - background: var(--code-bg-color); - color: var(--code-color); - font-size: 85%; + border-radius: var(--border-radius); + line-height: 1.25; + padding: 0.1rem 0.2rem; + background: var(--code-bg-color); + color: var(--code-color); + font-size: 85%; } .code { - border-radius: var(--border-radius); - background: var(--code-bg-color); - color: var(--text-color); - position: relative; + border-radius: var(--border-radius); + background: var(--code-bg-color); + color: var(--text-color); + position: relative; - & code { - color: inherit; - display: block; - line-height: 1.5; - overflow-x: auto; - padding: var(--unit-2); - width: 100%; - } + & code { + color: inherit; + display: block; + line-height: 1.5; + overflow-x: auto; + padding: var(--unit-2); + width: 100%; + } } diff --git a/bookmarks/styles/theme/dropdowns.css b/bookmarks/styles/theme/dropdowns.css index d421f686..07a17159 100644 --- a/bookmarks/styles/theme/dropdowns.css +++ b/bookmarks/styles/theme/dropdowns.css @@ -4,7 +4,7 @@ position: relative; .menu { - animation: fade-in .15s ease 1; + animation: fade-in 0.15s ease 1; display: none; left: 0; max-height: 50vh; diff --git a/bookmarks/styles/theme/empty.css b/bookmarks/styles/theme/empty.css index 611e476c..3ebb2bd7 100644 --- a/bookmarks/styles/theme/empty.css +++ b/bookmarks/styles/theme/empty.css @@ -1,21 +1,21 @@ /* Empty states (or Blank slates) */ .empty { - background: var(--body-color-contrast); - border-radius: var(--border-radius); - color: var(--secondary-text-color); - text-align: center; - padding: var(--unit-16) var(--unit-8); + background: var(--body-color-contrast); + border-radius: var(--border-radius); + color: var(--secondary-text-color); + text-align: center; + padding: var(--unit-16) var(--unit-8); - .empty-icon { - margin-bottom: var(--layout-spacing-lg); - } + .empty-icon { + margin-bottom: var(--layout-spacing-lg); + } - .empty-title, - .empty-subtitle { - margin: var(--layout-spacing) auto; - } + .empty-title, + .empty-subtitle { + margin: var(--layout-spacing) auto; + } - .empty-action { - margin-top: var(--layout-spacing-lg); - } + .empty-action { + margin-top: var(--layout-spacing-lg); + } } diff --git a/bookmarks/styles/theme/forms.css b/bookmarks/styles/theme/forms.css index a3eebb1e..e07f6f20 100644 --- a/bookmarks/styles/theme/forms.css +++ b/bookmarks/styles/theme/forms.css @@ -1,515 +1,537 @@ /* Forms */ :root { - --input-bg-color: var(--body-color); - --input-disabled-bg-color: var(--gray-100); - --input-text-color: var(--text-color); - --input-hint-color: var(--secondary-text-color); - --input-border-color: var(--border-color); - --input-placeholder-color: var(--tertiary-text-color); - --input-box-shadow: var(--box-shadow-xs); - - --checkbox-bg-color: var(--body-color); - --checkbox-checked-bg-color: var(--primary-color); - --checkbox-disabled-bg-color: var(--gray-100); - --checkbox-border-color: var(--border-color); - --checkbox-icon-color: #fff; - - --switch-bg-color: var(--gray-300); - --switch-border-color: var(--gray-400); - --switch-toggle-color: #fff; + --input-bg-color: var(--body-color); + --input-disabled-bg-color: var(--gray-100); + --input-text-color: var(--text-color); + --input-hint-color: var(--secondary-text-color); + --input-border-color: var(--border-color); + --input-placeholder-color: var(--tertiary-text-color); + --input-box-shadow: var(--box-shadow-xs); + + --checkbox-bg-color: var(--body-color); + --checkbox-checked-bg-color: var(--primary-color); + --checkbox-disabled-bg-color: var(--gray-100); + --checkbox-border-color: var(--border-color); + --checkbox-icon-color: #fff; + + --switch-bg-color: var(--gray-300); + --switch-border-color: var(--gray-400); + --switch-toggle-color: #fff; } .form-group { - &:first-of-type { - margin-top: var(--unit-4); - } - &:not(:last-child) { - margin-bottom: var(--unit-4); - } + &:first-of-type { + margin-top: var(--unit-4); + } + &:not(:last-child) { + margin-bottom: var(--unit-4); + } } fieldset { - margin-bottom: var(--layout-spacing-lg); + margin-bottom: var(--layout-spacing-lg); } legend { - font-size: var(--font-size-lg); - font-weight: 500; - margin-bottom: var(--layout-spacing-lg); + font-size: var(--font-size-lg); + font-weight: 500; + margin-bottom: var(--layout-spacing-lg); } /* Form element: Label */ .form-label { - display: block; - line-height: var(--line-height); - margin-bottom: var(--unit-2); - font-weight: 500; + display: block; + line-height: var(--line-height); + margin-bottom: var(--unit-2); + font-weight: 500; } details summary .form-label { - margin-bottom: 0; + margin-bottom: 0; } details[open] summary .form-label { - margin-bottom: var(--unit-2); + margin-bottom: var(--unit-2); } /* Form element: Input */ .form-input { - appearance: none; - background: var(--input-bg-color); - background-image: none; - border: var(--border-width) solid var(--input-border-color); - border-radius: var(--border-radius); - box-shadow: var(--input-box-shadow); - color: var(--input-text-color); - display: block; - font-size: var(--font-size); - height: var(--control-size); - line-height: var(--line-height); - max-width: 100%; - outline: none; - padding: var(--control-padding-y) var(--control-padding-x); - position: relative; - transition: background 0.2s, border 0.2s, color 0.2s; - width: 100%; - - &:focus { - outline: var(--focus-outline); - outline-offset: calc(var(--focus-outline-offset) * -1); - } - - &::placeholder { - color: var(--input-placeholder-color); - opacity: 1; - } - - /* Input sizes */ - - &.input-sm { - font-size: var(--font-size-sm); - height: var(--control-size-sm); - padding: var(--control-padding-y-sm) var(--control-padding-x-sm); - } + appearance: none; + background: var(--input-bg-color); + background-image: none; + border: var(--border-width) solid var(--input-border-color); + border-radius: var(--border-radius); + box-shadow: var(--input-box-shadow); + color: var(--input-text-color); + display: block; + font-size: var(--font-size); + height: var(--control-size); + line-height: var(--line-height); + max-width: 100%; + outline: none; + padding: var(--control-padding-y) var(--control-padding-x); + position: relative; + transition: + background 0.2s, + border 0.2s, + color 0.2s; + width: 100%; + + &:focus { + outline: var(--focus-outline); + outline-offset: calc(var(--focus-outline-offset) * -1); + } + + &::placeholder { + color: var(--input-placeholder-color); + opacity: 1; + } + + /* Input sizes */ + + &.input-sm { + font-size: var(--font-size-sm); + height: var(--control-size-sm); + padding: var(--control-padding-y-sm) var(--control-padding-x-sm); + } - &.input-lg { - font-size: var(--font-size-lg); - height: var(--control-size-lg); - padding: var(--control-padding-y-lg) var(--control-padding-x-lg); - } + &.input-lg { + font-size: var(--font-size-lg); + height: var(--control-size-lg); + padding: var(--control-padding-y-lg) var(--control-padding-x-lg); + } - &.input-inline { - display: inline-block; - vertical-align: middle; - width: auto; - } + &.input-inline { + display: inline-block; + vertical-align: middle; + width: auto; + } - /* Input types */ + /* Input types */ - &[type="file"] { - height: auto; - } + &[type="file"] { + height: auto; + } } /* Form element: Textarea */ textarea.form-input { - &, - &.input-lg, - &.input-sm { - height: auto; - } + &, + &.input-lg, + &.input-sm { + height: auto; + } } /* Form element: Input hint */ .form-input-hint { - color: var(--input-hint-color); - font-size: var(--font-size-sm); - margin-top: var(--unit-1); - - .has-success &, - .is-success + & { - color: var(--success-color); - } - - .has-error &, - .is-error + & { - color: var(--error-color); - } + color: var(--input-hint-color); + font-size: var(--font-size-sm); + margin-top: var(--unit-1); + + .has-success &, + .is-success + & { + color: var(--success-color); + } + + .has-error &, + .is-error + & { + color: var(--error-color); + } } /* Form element: Select */ .form-select { - appearance: none; - background: var(--input-bg-color); - border: var(--border-width) solid var(--input-border-color); - border-radius: var(--border-radius); - box-shadow: var(--input-box-shadow); - color: var(--input-text-color); - font-size: var(--font-size); - height: var(--control-size); - line-height: var(--line-height); - outline: none; - padding: var(--control-padding-y) var(--control-padding-x); - vertical-align: middle; - width: 100%; - - &:focus { - outline: var(--focus-outline); - outline-offset: calc(var(--focus-outline-offset) * -1); - } - - /* Select sizes */ - - &.select-sm { - font-size: var(--font-size-sm); - height: var(--control-size-sm); - padding: var(--control-padding-y-sm) calc(var(--control-icon-size) + var(--control-padding-x-sm)) var(--control-padding-y-sm) var(--control-padding-x-sm); - } + appearance: none; + background: var(--input-bg-color); + border: var(--border-width) solid var(--input-border-color); + border-radius: var(--border-radius); + box-shadow: var(--input-box-shadow); + color: var(--input-text-color); + font-size: var(--font-size); + height: var(--control-size); + line-height: var(--line-height); + outline: none; + padding: var(--control-padding-y) var(--control-padding-x); + vertical-align: middle; + width: 100%; + + &:focus { + outline: var(--focus-outline); + outline-offset: calc(var(--focus-outline-offset) * -1); + } + + /* Select sizes */ + + &.select-sm { + font-size: var(--font-size-sm); + height: var(--control-size-sm); + padding: var(--control-padding-y-sm) + calc(var(--control-icon-size) + var(--control-padding-x-sm)) + var(--control-padding-y-sm) var(--control-padding-x-sm); + } - &.select-lg { - font-size: var(--font-size-lg); - height: var(--control-size-lg); - padding: var(--control-padding-y-lg) calc(var(--control-icon-size) + var(--control-padding-x-lg)) var(--control-padding-y-lg) var(--control-padding-x-lg); - } + &.select-lg { + font-size: var(--font-size-lg); + height: var(--control-size-lg); + padding: var(--control-padding-y-lg) + calc(var(--control-icon-size) + var(--control-padding-x-lg)) + var(--control-padding-y-lg) var(--control-padding-x-lg); + } - /* Multiple select */ + /* Multiple select */ - &[size], - &[multiple] { - height: auto; - padding: var(--control-padding-y) var(--control-padding-x); + &[size], + &[multiple] { + height: auto; + padding: var(--control-padding-y) var(--control-padding-x); - & option { - padding: var(--unit-h) var(--unit-1); - } + & option { + padding: var(--unit-h) var(--unit-1); } + } - &:not([multiple]):not([size]) { - background: var(--input-bg-color) url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E") no-repeat right .35rem center / .4rem .5rem; - padding-right: calc(var(--control-icon-size) + var(--control-padding-x)); - } + &:not([multiple]):not([size]) { + background: var(--input-bg-color) + url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E") + no-repeat right 0.35rem center / 0.4rem 0.5rem; + padding-right: calc(var(--control-icon-size) + var(--control-padding-x)); + } } /* Form element: Checkbox and Radio */ .form-checkbox, .form-radio, .form-switch { - display: block; - line-height: var(--line-height); - margin: calc((var(--control-size) - var(--control-size-sm)) / 2) 0; - min-height: var(--control-size-sm); - padding: calc((var(--control-size-sm) - var(--line-height)) / 2) var(--control-padding-x) calc((var(--control-size-sm) - var(--line-height)) / 2) calc(var(--control-icon-size) + var(--control-padding-x)); - position: relative; - - input { - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - position: absolute; - width: 1px; - - &:focus-visible + .form-icon { - outline: var(--focus-outline); - outline-offset: var(--focus-outline-offset); - } - - &:checked + .form-icon { - background: var(--checkbox-checked-bg-color); - border-color: var(--checkbox-checked-bg-color); - } - } - - .form-icon { - border: var(--border-width) solid var(--checkbox-border-color); - box-shadow: var(--input-box-shadow); - cursor: pointer; - display: inline-block; - position: absolute; - transition: background .2s, border .2s, color .2s; - } - - /* Input checkbox, radio, and switch sizes */ - - &.input-sm { - font-size: var(--font-size-sm); - margin: 0; - } + display: block; + line-height: var(--line-height); + margin: calc((var(--control-size) - var(--control-size-sm)) / 2) 0; + min-height: var(--control-size-sm); + padding: calc((var(--control-size-sm) - var(--line-height)) / 2) + var(--control-padding-x) + calc((var(--control-size-sm) - var(--line-height)) / 2) + calc(var(--control-icon-size) + var(--control-padding-x)); + position: relative; + + input { + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + position: absolute; + width: 1px; + + &:focus-visible + .form-icon { + outline: var(--focus-outline); + outline-offset: var(--focus-outline-offset); + } + + &:checked + .form-icon { + background: var(--checkbox-checked-bg-color); + border-color: var(--checkbox-checked-bg-color); + } + } + + .form-icon { + border: var(--border-width) solid var(--checkbox-border-color); + box-shadow: var(--input-box-shadow); + cursor: pointer; + display: inline-block; + position: absolute; + transition: + background 0.2s, + border 0.2s, + color 0.2s; + } + + /* Input checkbox, radio, and switch sizes */ + + &.input-sm { + font-size: var(--font-size-sm); + margin: 0; + } - &.input-lg { - font-size: var(--font-size-lg); - margin: calc((var(--control-size-lg) - var(--control-size-sm)) / 2) 0; - } + &.input-lg { + font-size: var(--font-size-lg); + margin: calc((var(--control-size-lg) - var(--control-size-sm)) / 2) 0; + } } .form-checkbox, .form-radio { - .form-icon { - background: var(--checkbox-bg-color); - height: var(--control-icon-size); - left: 0; - top: calc((var(--control-size-sm) - var(--control-icon-size)) / 2); - width: var(--control-icon-size); - } + .form-icon { + background: var(--checkbox-bg-color); + height: var(--control-icon-size); + left: 0; + top: calc((var(--control-size-sm) - var(--control-icon-size)) / 2); + width: var(--control-icon-size); + } } .form-checkbox { - font-weight: 500; + font-weight: 500; - .form-icon { - border-radius: var(--border-radius); - } + .form-icon { + border-radius: var(--border-radius); + } - input { - &:checked + .form-icon { - &::before { - background-clip: padding-box; - border: var(--border-width-lg) solid var(--checkbox-icon-color); - border-left-width: 0; - border-top-width: 0; - content: ""; - height: 9px; - left: 50%; - margin-left: -3px; - margin-top: -6px; - position: absolute; - top: 50%; - transform: rotate(45deg); - width: 6px; - } - } - - &:indeterminate + .form-icon { - background: var(--checkbox-checked-bg-color); - border-color: var(--checkbox-checked-bg-color); - - &::before { - background: var(--checkbox-icon-color); - content: ""; - height: 2px; - left: 50%; - margin-left: -5px; - margin-top: -1px; - position: absolute; - top: 50%; - width: 10px; - } - } + input { + &:checked + .form-icon { + &::before { + background-clip: padding-box; + border: var(--border-width-lg) solid var(--checkbox-icon-color); + border-left-width: 0; + border-top-width: 0; + content: ""; + height: 9px; + left: 50%; + margin-left: -3px; + margin-top: -6px; + position: absolute; + top: 50%; + transform: rotate(45deg); + width: 6px; + } + } + + &:indeterminate + .form-icon { + background: var(--checkbox-checked-bg-color); + border-color: var(--checkbox-checked-bg-color); + + &::before { + background: var(--checkbox-icon-color); + content: ""; + height: 2px; + left: 50%; + margin-left: -5px; + margin-top: -1px; + position: absolute; + top: 50%; + width: 10px; + } } + } } .form-radio { - .form-icon { + .form-icon { + border-radius: 50%; + } + + input { + &:checked + .form-icon { + &::before { + background: var(--checkbox-icon-color); border-radius: 50%; + content: ""; + height: 6px; + left: 50%; + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + width: 6px; + } } - - input { - &:checked + .form-icon { - &::before { - background: var(--checkbox-icon-color); - border-radius: 50%; - content: ""; - height: 6px; - left: 50%; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - width: 6px; - } - } - } + } } /* Form element: Switch */ .form-switch { - padding-left: calc(var(--unit-8) + var(--control-padding-x)); - - .form-icon { - background: var(--switch-bg-color); - background-clip: padding-box; - border-color: var(--switch-border-color); - border-radius: calc(var(--unit-2) + var(--border-width)); - height: calc(var(--unit-4) + var(--border-width) * 2); - left: 0; - top: calc((var(--control-size-sm) - var(--unit-4)) / 2 - var(--border-width)); - width: var(--unit-8); - - &::before { - background: var(--switch-toggle-color); - border-radius: 50%; - content: ""; - display: block; - height: var(--unit-4); - left: 0; - position: absolute; - top: 0; - transition: background .2s, border .2s, color .2s, left .2s; - width: var(--unit-4); - } - } - - input { - &:checked + .form-icon { - &::before { - left: 14px; - } - } - } + padding-left: calc(var(--unit-8) + var(--control-padding-x)); + + .form-icon { + background: var(--switch-bg-color); + background-clip: padding-box; + border-color: var(--switch-border-color); + border-radius: calc(var(--unit-2) + var(--border-width)); + height: calc(var(--unit-4) + var(--border-width) * 2); + left: 0; + top: calc( + (var(--control-size-sm) - var(--unit-4)) / 2 - var(--border-width) + ); + width: var(--unit-8); + + &::before { + background: var(--switch-toggle-color); + border-radius: 50%; + content: ""; + display: block; + height: var(--unit-4); + left: 0; + position: absolute; + top: 0; + transition: + background 0.2s, + border 0.2s, + color 0.2s, + left 0.2s; + width: var(--unit-4); + } + } + + input { + &:checked + .form-icon { + &::before { + left: 14px; + } + } + } } /* Form Icons */ .has-icon-left, .has-icon-right { - position: relative; - - .form-icon { - height: var(--control-icon-size); - margin: 0 var(--control-padding-y); - position: absolute; - top: 50%; - transform: translateY(-50%); - width: var(--control-icon-size); - z-index: calc(var(--zindex-0) + 1); - } + position: relative; + + .form-icon { + height: var(--control-icon-size); + margin: 0 var(--control-padding-y); + position: absolute; + top: 50%; + transform: translateY(-50%); + width: var(--control-icon-size); + z-index: calc(var(--zindex-0) + 1); + } } .has-icon-left { - & .form-icon { - left: var(--border-width); - } + & .form-icon { + left: var(--border-width); + } - & .form-input { - padding-left: calc(var(--control-icon-size) + var(--control-padding-y) * 2); - } + & .form-input { + padding-left: calc(var(--control-icon-size) + var(--control-padding-y) * 2); + } } .has-icon-right { - & .form-icon { - right: var(--border-width); - } - - & .form-input { - padding-right: calc(var(--control-icon-size) + var(--control-padding-y) * 2); - } + & .form-icon { + right: var(--border-width); + } + + & .form-input { + padding-right: calc( + var(--control-icon-size) + var(--control-padding-y) * 2 + ); + } } - /* Form element: Input groups */ .input-group { - display: flex; - - .input-group-addon { - background: var(--body-color); - border: var(--border-width) solid var(--input-border-color); - border-radius: var(--border-radius); - line-height: var(--line-height); - padding: var(--control-padding-y) var(--control-padding-x); - white-space: nowrap; - - &.addon-sm { - font-size: var(--font-size-sm); - padding: var(--control-padding-y-sm) var(--control-padding-x-sm); - } - - &.addon-lg { - font-size: var(--font-size-lg); - padding: var(--control-padding-y-lg) var(--control-padding-x-lg); - } + display: flex; + + .input-group-addon { + background: var(--body-color); + border: var(--border-width) solid var(--input-border-color); + border-radius: var(--border-radius); + line-height: var(--line-height); + padding: var(--control-padding-y) var(--control-padding-x); + white-space: nowrap; + + &.addon-sm { + font-size: var(--font-size-sm); + padding: var(--control-padding-y-sm) var(--control-padding-x-sm); } - .form-input, - .form-select { - flex: 1 1 auto; - width: 1%; + &.addon-lg { + font-size: var(--font-size-lg); + padding: var(--control-padding-y-lg) var(--control-padding-x-lg); } + } + + .form-input, + .form-select { + flex: 1 1 auto; + width: 1%; + } - .input-group-btn { - z-index: var(--zindex-0); + .input-group-btn { + z-index: var(--zindex-0); + } + + .form-input, + .form-select, + .input-group-addon, + .input-group-btn { + &:first-child:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } - .form-input, - .form-select, - .input-group-addon, - .input-group-btn { - &:first-child:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - &:not(:first-child):not(:last-child) { - border-radius: 0; - margin-left: calc(-1 * var(--border-width)); - } - - &:last-child:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - margin-left: calc(-1 * var(--border-width)); - } - - &:focus { - z-index: calc(var(--zindex-0) + 1); - } + &:not(:first-child):not(:last-child) { + border-radius: 0; + margin-left: calc(-1 * var(--border-width)); } - .form-select { - width: auto; + &:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + margin-left: calc(-1 * var(--border-width)); } - &.input-inline { - display: inline-flex; + &:focus { + z-index: calc(var(--zindex-0) + 1); } + } + + .form-select { + width: auto; + } + + &.input-inline { + display: inline-flex; + } } /* Form validation states */ .form-input, .form-select { - .has-success &, - &.is-success { - background: var(--success-color-shade); - border-color: var(--success-color); - - &:focus { - outline-color: var(--success-color); - } + .has-success &, + &.is-success { + background: var(--success-color-shade); + border-color: var(--success-color); + + &:focus { + outline-color: var(--success-color); } + } - .has-error &, - &.is-error { - background: var(--error-color-shade); - border-color: var(--error-color); + .has-error &, + &.is-error { + background: var(--error-color-shade); + border-color: var(--error-color); - &:focus { - outline-color: var(--error-color); - } + &:focus { + outline-color: var(--error-color); } + } } /* Form disabled and readonly */ .form-input, .form-select { - &:disabled, - &.disabled { - background-color: var(--input-disabled-bg-color); - cursor: not-allowed; - } + &:disabled, + &.disabled { + background-color: var(--input-disabled-bg-color); + cursor: not-allowed; + } } input { - &:disabled, - &.disabled { - & + .form-icon { - background: var(--checkbox-disabled-bg-color); - cursor: not-allowed; - } + &:disabled, + &.disabled { + & + .form-icon { + background: var(--checkbox-disabled-bg-color); + cursor: not-allowed; } + } } /* Increase input font size on small viewports to prevent zooming on focus the input */ /* on mobile devices. 430px relates to the "normalized" iPhone 14 Pro Max */ /* viewport size */ @media screen and (max-width: 430px) { - .form-input { - font-size: 16px; - } + .form-input { + font-size: 16px; + } } diff --git a/bookmarks/styles/theme/menus.css b/bookmarks/styles/theme/menus.css index 61d2c96f..4fa5aad9 100644 --- a/bookmarks/styles/theme/menus.css +++ b/bookmarks/styles/theme/menus.css @@ -1,89 +1,90 @@ :root { - --menu-bg-color: var(--body-color); - --menu-border-color: var(--gray-200); - --menu-border-radius: var(--border-radius); - --menu-box-shadow: var(--box-shadow); - --menu-item-color: var(--text-color); - --menu-item-hover-color: var(--primary-text-color); - --menu-item-bg-color: transparent; - --menu-item-hover-bg-color: var(--primary-color-shade); + --menu-bg-color: var(--body-color); + --menu-border-color: var(--gray-200); + --menu-border-radius: var(--border-radius); + --menu-box-shadow: var(--box-shadow); + --menu-item-color: var(--text-color); + --menu-item-hover-color: var(--primary-text-color); + --menu-item-bg-color: transparent; + --menu-item-hover-bg-color: var(--primary-color-shade); } /* Menus */ .menu { - background: var(--menu-bg-color); - border: solid 1px var(--menu-border-color); - border-radius: var(--menu-border-radius); - box-shadow: var(--menu-box-shadow); - list-style: none; - margin: 0; - min-width: var(--control-width-xs); - transform: translateY(var(--layout-spacing-sm)); - z-index: var(--zindex-3); + background: var(--menu-bg-color); + border: solid 1px var(--menu-border-color); + border-radius: var(--menu-border-radius); + box-shadow: var(--menu-box-shadow); + list-style: none; + margin: 0; + min-width: var(--control-width-xs); + transform: translateY(var(--layout-spacing-sm)); + z-index: var(--zindex-3); - &.menu-nav { - background: transparent; - box-shadow: none; - } + &.menu-nav { + background: transparent; + box-shadow: none; + } - .menu-item { - margin-top: 0; - padding: 0 var(--unit-4); - position: relative; - text-decoration: none; + .menu-item { + margin-top: 0; + padding: 0 var(--unit-4); + position: relative; + text-decoration: none; - &:first-of-type { - padding-top: var(--unit-2); - } + &:first-of-type { + padding-top: var(--unit-2); + } - &:last-of-type { - padding-bottom: var(--unit-2); - } + &:last-of-type { + padding-bottom: var(--unit-2); + } - & > a, .btn.btn-link { - border-radius: var(--menu-border-radius); - color: var(--menu-item-color); - background: var(--menu-item-bg-color); - display: block; - margin: 0 calc(-1 * var(--unit-2)); - padding: var(--unit-1) var(--unit-2); - text-decoration: none; + & > a, + .btn.btn-link { + border-radius: var(--menu-border-radius); + color: var(--menu-item-color); + background: var(--menu-item-bg-color); + display: block; + margin: 0 calc(-1 * var(--unit-2)); + padding: var(--unit-1) var(--unit-2); + text-decoration: none; - &:focus, - &:hover, - &:active, - &.active { - background: var(--menu-item-hover-bg-color); - color: var(--menu-item-hover-color); - } - } + &:focus, + &:hover, + &:active, + &.active { + background: var(--menu-item-hover-bg-color); + color: var(--menu-item-hover-color); + } + } - .form-checkbox, - .form-radio, - .form-switch { - margin: var(--unit-h) 0; - } + .form-checkbox, + .form-radio, + .form-switch { + margin: var(--unit-h) 0; + } - & + .menu-item { - margin-top: var(--unit-1); - } + & + .menu-item { + margin-top: var(--unit-1); } + } - & .menu-badge { - align-items: center; - display: flex; - height: 100%; - position: absolute; - right: 0; - top: 0; + & .menu-badge { + align-items: center; + display: flex; + height: 100%; + position: absolute; + right: 0; + top: 0; - .label { - margin-right: var(--unit-2); - } + .label { + margin-right: var(--unit-2); } + } - & .divider { - border-bottom: solid 1px var(--secondary-border-color); - margin: var(--unit-2) 0; - } -} \ No newline at end of file + & .divider { + border-bottom: solid 1px var(--secondary-border-color); + margin: var(--unit-2) 0; + } +} diff --git a/bookmarks/styles/theme/modals.css b/bookmarks/styles/theme/modals.css index 9cb569f8..0077fd3b 100644 --- a/bookmarks/styles/theme/modals.css +++ b/bookmarks/styles/theme/modals.css @@ -1,103 +1,104 @@ /* Modals */ :root { - --modal-overlay-bg-color: rgba(243, 244, 246, 0.6); - --modal-container-bg-color: var(--body-color); - --modal-container-border-color: var(--gray-200); - --modal-border-radius: var(--border-radius-lg); - --modal-box-shadow: var(--box-shadow-lg); + --modal-overlay-bg-color: rgba(243, 244, 246, 0.6); + --modal-container-bg-color: var(--body-color); + --modal-container-border-color: var(--gray-200); + --modal-border-radius: var(--border-radius-lg); + --modal-box-shadow: var(--box-shadow-lg); } .modal { - align-items: center; - bottom: 0; - display: none; - justify-content: center; - left: 0; - opacity: 0; - overflow: hidden; - padding: var(--layout-spacing); - position: fixed; - right: 0; - top: 0; + align-items: center; + bottom: 0; + display: none; + justify-content: center; + left: 0; + opacity: 0; + overflow: hidden; + padding: var(--layout-spacing); + position: fixed; + right: 0; + top: 0; - &:target, - &.active { - display: flex; - opacity: 1; - z-index: var(--zindex-4); + &:target, + &.active { + display: flex; + opacity: 1; + z-index: var(--zindex-4); - & .modal-overlay { - animation: fade-in .15s ease 1; - background: var(--modal-overlay-bg-color); - bottom: 0; - cursor: default; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - } + & .modal-overlay { + animation: fade-in 0.15s ease 1; + background: var(--modal-overlay-bg-color); + bottom: 0; + cursor: default; + display: block; + left: 0; + position: absolute; + right: 0; + top: 0; + } - & .modal-container { - animation: fade-in .15s ease 1; - z-index: var(--zindex-0); - } + & .modal-container { + animation: fade-in 0.15s ease 1; + z-index: var(--zindex-0); } + } - &.active.closing { - & .modal-overlay, & .modal-container { - animation: fade-out .15s ease 1; - } + &.active.closing { + & .modal-overlay, + & .modal-container { + animation: fade-out 0.15s ease 1; } + } } .modal-container { - background: var(--modal-container-bg-color); - border: solid 1px var(--modal-container-border-color); - border-radius: var(--modal-border-radius); - box-shadow: var(--modal-box-shadow); - display: flex; - flex-direction: column; - gap: var(--unit-4); - max-height: 75vh; - max-width: var(--control-width-md); - padding: var(--unit-6); - width: 100%; + background: var(--modal-container-bg-color); + border: solid 1px var(--modal-container-border-color); + border-radius: var(--modal-border-radius); + box-shadow: var(--modal-box-shadow); + display: flex; + flex-direction: column; + gap: var(--unit-4); + max-height: 75vh; + max-width: var(--control-width-md); + padding: var(--unit-6); + width: 100%; - & .modal-header { - display: flex; - align-items: flex-start; - gap: var(--unit-2); - color: var(--text-color); + & .modal-header { + display: flex; + align-items: flex-start; + gap: var(--unit-2); + color: var(--text-color); - & h2 { - flex: 1 1 0; - align-items: flex-start; - font-size: 1rem; - margin: 0; - } + & h2 { + flex: 1 1 0; + align-items: flex-start; + font-size: 1rem; + margin: 0; + } - & button.close { - background: none; - border: none; - padding: 0; - line-height: 0; - cursor: pointer; - opacity: .85; - color: var(--secondary-text-color); + & button.close { + background: none; + border: none; + padding: 0; + line-height: 0; + cursor: pointer; + opacity: 0.85; + color: var(--secondary-text-color); - &:hover { - opacity: 1; - } - } + &:hover { + opacity: 1; + } } + } - & .modal-body { - overflow-y: auto; - position: relative; - } + & .modal-body { + overflow-y: auto; + position: relative; + } - & .modal-footer { - text-align: right; - } + & .modal-footer { + text-align: right; + } } diff --git a/bookmarks/styles/theme/pagination.css b/bookmarks/styles/theme/pagination.css index 027ff373..5661d6c5 100644 --- a/bookmarks/styles/theme/pagination.css +++ b/bookmarks/styles/theme/pagination.css @@ -1,61 +1,61 @@ /* Pagination */ .pagination { - display: flex; - list-style: none; - margin: var(--unit-1) 0; - padding: var(--unit-1) 0; - - & .page-item { - margin: var(--unit-1) var(--unit-o); - - & span { - display: inline-block; - padding: var(--unit-1) var(--unit-1); - } - - & a { - border-radius: var(--border-radius); - display: inline-block; - padding: var(--unit-1) var(--unit-2); - text-decoration: none; - - &:focus, - &:hover { - color: var(--primary-text-color); - } - } - - &.disabled { - & a { - cursor: default; - opacity: .5; - pointer-events: none; - } - } - - &.active { - & a { - background: var(--primary-color); - color: var(--contrast-text-color); - } - } - - &.page-prev, - &.page-next { - flex: 1 0 50%; - } - - &.page-next { - text-align: right; - } - - & .page-item-title { - margin: 0; - } - - & .page-item-subtitle { - margin: 0; - opacity: .5; - } + display: flex; + list-style: none; + margin: var(--unit-1) 0; + padding: var(--unit-1) 0; + + & .page-item { + margin: var(--unit-1) var(--unit-o); + + & span { + display: inline-block; + padding: var(--unit-1) var(--unit-1); + } + + & a { + border-radius: var(--border-radius); + display: inline-block; + padding: var(--unit-1) var(--unit-2); + text-decoration: none; + + &:focus, + &:hover { + color: var(--primary-text-color); + } + } + + &.disabled { + & a { + cursor: default; + opacity: 0.5; + pointer-events: none; + } + } + + &.active { + & a { + background: var(--primary-color); + color: var(--contrast-text-color); + } + } + + &.page-prev, + &.page-next { + flex: 1 0 50%; + } + + &.page-next { + text-align: right; + } + + & .page-item-title { + margin: 0; + } + + & .page-item-subtitle { + margin: 0; + opacity: 0.5; } + } } diff --git a/bookmarks/styles/theme/tables.css b/bookmarks/styles/theme/tables.css index b9b2268e..1c7e9b66 100644 --- a/bookmarks/styles/theme/tables.css +++ b/bookmarks/styles/theme/tables.css @@ -1,26 +1,26 @@ /* Tables */ .table { - border-collapse: collapse; - border-spacing: 0; - width: 100%; - text-align: left; + border-collapse: collapse; + border-spacing: 0; + width: 100%; + text-align: left; - /* Scrollable tables */ + /* Scrollable tables */ - &.table-scroll { - display: block; - overflow-x: auto; - padding-bottom: 0.75rem; - white-space: nowrap; - } + &.table-scroll { + display: block; + overflow-x: auto; + padding-bottom: 0.75rem; + white-space: nowrap; + } - & td, - & th { - border-bottom: var(--border-width) solid var(--border-color); - padding: var(--unit-3) var(--unit-2); - } + & td, + & th { + border-bottom: var(--border-width) solid var(--border-color); + padding: var(--unit-3) var(--unit-2); + } - & th { - border-bottom-width: var(--border-width-lg); - } -} \ No newline at end of file + & th { + border-bottom-width: var(--border-width-lg); + } +} diff --git a/bookmarks/styles/theme/tabs.css b/bookmarks/styles/theme/tabs.css index c3570a33..41a38b78 100644 --- a/bookmarks/styles/theme/tabs.css +++ b/bookmarks/styles/theme/tabs.css @@ -1,75 +1,76 @@ /* Tabs */ :root { - --tab-color: var(--text-color); - --tab-hover-color: var(--primary-text-color); - --tab-active-color: var(--primary-text-color); - --tab-highlight-color: var(--primary-color); + --tab-color: var(--text-color); + --tab-hover-color: var(--primary-text-color); + --tab-active-color: var(--primary-text-color); + --tab-highlight-color: var(--primary-color); } .tab { - align-items: center; - border-bottom: var(--border-width) solid var(--border-color); - display: flex; - flex-wrap: wrap; - list-style: none; - margin: var(--unit-1) 0 calc(var(--unit-1) - var(--border-width)) 0; + align-items: center; + border-bottom: var(--border-width) solid var(--border-color); + display: flex; + flex-wrap: wrap; + list-style: none; + margin: var(--unit-1) 0 calc(var(--unit-1) - var(--border-width)) 0; - & .tab-item { - margin-top: 0; + & .tab-item { + margin-top: 0; - & a { - border-bottom: var(--border-width-lg) solid transparent; - color: var(--tab-color); - display: block; - margin: 0 var(--unit-2) 0 0; - padding: var(--unit-2) var(--unit-1) calc(var(--unit-2) - var(--border-width-lg)) var(--unit-1); - text-decoration: none; + & a { + border-bottom: var(--border-width-lg) solid transparent; + color: var(--tab-color); + display: block; + margin: 0 var(--unit-2) 0 0; + padding: var(--unit-2) var(--unit-1) + calc(var(--unit-2) - var(--border-width-lg)) var(--unit-1); + text-decoration: none; - &:focus, - &:hover { - color: var(--tab-hover-color); - } - } + &:focus, + &:hover { + color: var(--tab-hover-color); + } + } - &.active a, - & a.active { - border-bottom-color: var(--tab-highlight-color); - color: var(--tab-active-color); - } + &.active a, + & a.active { + border-bottom-color: var(--tab-highlight-color); + color: var(--tab-active-color); + } - &.tab-action { - flex: 1 0 auto; - text-align: right; - } + &.tab-action { + flex: 1 0 auto; + text-align: right; + } - & .btn-clear { - margin-top: calc(-1 * var(--unit-1)); - } + & .btn-clear { + margin-top: calc(-1 * var(--unit-1)); } + } - &.tab-block { - & .tab-item { - flex: 1 0 0; - text-align: center; + &.tab-block { + & .tab-item { + flex: 1 0 0; + text-align: center; - & a { - margin: 0; - } + & a { + margin: 0; + } - & .badge { - &[data-badge]::after { - position: absolute; - right: var(--unit-h); - top: var(--unit-h); - transform: translate(0, 0); - } - } + & .badge { + &[data-badge]::after { + position: absolute; + right: var(--unit-h); + top: var(--unit-h); + transform: translate(0, 0); } + } } + } - &:not(.tab-block) { - & .badge { - padding-right: 0; - } + &:not(.tab-block) { + & .badge { + padding-right: 0; } -} \ No newline at end of file + } +} diff --git a/bookmarks/styles/theme/toasts.css b/bookmarks/styles/theme/toasts.css index 6a35fcf4..b2eeec41 100644 --- a/bookmarks/styles/theme/toasts.css +++ b/bookmarks/styles/theme/toasts.css @@ -1,35 +1,35 @@ /* Toasts */ .toast { - background: var(--gray-600); - border-radius: var(--border-radius); - color: var(--contrast-text-color); - display: block; - padding: var(--layout-spacing); - width: 100%; + background: var(--gray-600); + border-radius: var(--border-radius); + color: var(--contrast-text-color); + display: block; + padding: var(--layout-spacing); + width: 100%; - &.toast-primary { - background: var(--primary-color); - } + &.toast-primary { + background: var(--primary-color); + } - &.toast-success { - background: var(--success-color); - } + &.toast-success { + background: var(--success-color); + } - &.toast-warning { - background: var(--warning-color); - } + &.toast-warning { + background: var(--warning-color); + } - &.toast-error { - background: var(--error-color); - } + &.toast-error { + background: var(--error-color); + } - .btn-clear { - margin: var(--unit-h); - } + .btn-clear { + margin: var(--unit-h); + } - p { - &:last-child { - margin-bottom: 0; - } + p { + &:last-child { + margin-bottom: 0; } + } } diff --git a/bookmarks/styles/theme/typography.css b/bookmarks/styles/theme/typography.css index 46882262..fd8fa3b2 100644 --- a/bookmarks/styles/theme/typography.css +++ b/bookmarks/styles/theme/typography.css @@ -6,11 +6,11 @@ h3, h4, h5, h6 { - color: inherit; - font-weight: 500; - line-height: 1.2; - margin-bottom: 0.5em; - margin-top: 0; + color: inherit; + font-weight: 500; + line-height: 1.2; + margin-bottom: 0.5em; + margin-top: 0; } .h1, .h2, @@ -18,100 +18,100 @@ h6 { .h4, .h5, .h6 { - font-weight: 500; + font-weight: 500; } h1, .h1 { - font-size: 2rem; + font-size: 2rem; } h2, .h2 { - font-size: 1.6rem; + font-size: 1.6rem; } h3, .h3 { - font-size: 1.4rem; + font-size: 1.4rem; } h4, .h4 { - font-size: 1.2rem; + font-size: 1.2rem; } h5, .h5 { - font-size: 1rem; + font-size: 1rem; } h6, .h6 { - font-size: 0.8rem; + font-size: 0.8rem; } /* Paragraphs */ p { - margin: 0 0 var(--line-height); + margin: 0 0 var(--line-height); } /* Semantic text elements */ a, ins, u { - text-decoration-skip-ink: auto; + text-decoration-skip-ink: auto; } abbr[title] { - border-bottom: var(--border-width) dotted; - cursor: help; - text-decoration: none; + border-bottom: var(--border-width) dotted; + cursor: help; + text-decoration: none; } /* Blockquote */ blockquote { - border-left: var(--border-width-lg) solid var(--border-color); - margin-left: 0; - padding: var(--unit-2) var(--unit-4); + border-left: var(--border-width-lg) solid var(--border-color); + margin-left: 0; + padding: var(--unit-2) var(--unit-4); - & p:last-child { - margin-bottom: 0; - } + & p:last-child { + margin-bottom: 0; + } } /* Lists */ ul, ol { - margin: var(--unit-4) 0 var(--unit-4) var(--unit-4); - padding: 0; + margin: var(--unit-4) 0 var(--unit-4) var(--unit-4); + padding: 0; - & ul, - & ol { - margin: var(--unit-4) 0 var(--unit-4) var(--unit-4); - } + & ul, + & ol { + margin: var(--unit-4) 0 var(--unit-4) var(--unit-4); + } - & li { - margin-top: var(--unit-2); - } + & li { + margin-top: var(--unit-2); + } } ul { - list-style: disc inside; + list-style: disc inside; - & ul { - list-style-type: circle; - } + & ul { + list-style-type: circle; + } } ol { - list-style: decimal inside; + list-style: decimal inside; - & ol { - list-style-type: lower-alpha; - } + & ol { + list-style-type: lower-alpha; + } } dl { - & dt { - font-weight: bold; - } + & dt { + font-weight: bold; + } - & dd { - margin: var(--unit-1) 0 var(--unit-4) 0; - } + & dd { + margin: var(--unit-1) 0 var(--unit-4) 0; + } } diff --git a/bookmarks/styles/theme/utilities.css b/bookmarks/styles/theme/utilities.css index 74d4a79a..bbdd0d2f 100644 --- a/bookmarks/styles/theme/utilities.css +++ b/bookmarks/styles/theme/utilities.css @@ -1,296 +1,296 @@ /* Colors */ .text-primary { - color: var(--primary-text-color); + color: var(--primary-text-color); } .text-secondary { - color: var(--secondary-text-color); + color: var(--secondary-text-color); } .text-tertiary { - color: var(--tertiary-text-color); + color: var(--tertiary-text-color); } .text-success { - color: var(--success-color); + color: var(--success-color); } .text-warning { - color: var(--warning-color); + color: var(--warning-color); } .text-error { - color: var(--error-color); + color: var(--error-color); } .icon-color { - color: var(--icon-color); + color: var(--icon-color); } /* Display */ .d-block { - display: block; + display: block; } .d-inline { - display: inline; + display: inline; } .d-inline-block { - display: inline-block; + display: inline-block; } .d-flex { - display: flex; + display: flex; } .d-inline-flex { - display: inline-flex; + display: inline-flex; } .d-none, .d-hide { - display: none !important; + display: none !important; } .d-visible { - visibility: visible; + visibility: visible; } .d-invisible { - visibility: hidden; + visibility: hidden; } .text-hide { - background: transparent; - border: 0; - color: transparent; - font-size: 0; - line-height: 0; - text-shadow: none; + background: transparent; + border: 0; + color: transparent; + font-size: 0; + line-height: 0; + text-shadow: none; } .text-assistive { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } /* Loading */ .loading { - color: transparent !important; - min-height: var(--unit-4); - pointer-events: none; - position: relative; + color: transparent !important; + min-height: var(--unit-4); + pointer-events: none; + position: relative; - &::after { - animation: loading 500ms infinite linear; - background: transparent; - border: var(--border-width-lg) solid var(--primary-color); - border-radius: 50%; - border-right-color: transparent; - border-top-color: transparent; - content: ""; - display: block; - height: var(--unit-4); - left: 50%; - margin-left: calc(-1 * var(--unit-2)); - margin-top: calc(-1 * var(--unit-2)); - opacity: 1; - padding: 0; - position: absolute; - top: 50%; - width: var(--unit-4); - z-index: var(--zindex-0); - } + &::after { + animation: loading 500ms infinite linear; + background: transparent; + border: var(--border-width-lg) solid var(--primary-color); + border-radius: 50%; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: var(--unit-4); + left: 50%; + margin-left: calc(-1 * var(--unit-2)); + margin-top: calc(-1 * var(--unit-2)); + opacity: 1; + padding: 0; + position: absolute; + top: 50%; + width: var(--unit-4); + z-index: var(--zindex-0); + } - &.loading-lg { - min-height: var(--unit-10); + &.loading-lg { + min-height: var(--unit-10); - &::after { - height: var(--unit-8); - margin-left: calc(-1 * var(--unit-4)); - margin-top: calc(-1 * var(--unit-4)); - width: var(--unit-8); - } + &::after { + height: var(--unit-8); + margin-left: calc(-1 * var(--unit-4)); + margin-top: calc(-1 * var(--unit-4)); + width: var(--unit-8); } + } } /* Position */ .m-0 { - margin: 0 !important; + margin: 0 !important; } .mb-0 { - margin-bottom: 0 !important; + margin-bottom: 0 !important; } .ml-0 { - margin-left: 0 !important; + margin-left: 0 !important; } .mr-0 { - margin-right: 0 !important; + margin-right: 0 !important; } .mt-0 { - margin-top: 0 !important; + margin-top: 0 !important; } .mx-0 { - margin-left: 0 !important; - margin-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; } .my-0 { - margin-bottom: 0 !important; - margin-top: 0 !important; + margin-bottom: 0 !important; + margin-top: 0 !important; } .m-1 { - margin: var(--unit-1) !important; + margin: var(--unit-1) !important; } .mb-1 { - margin-bottom: var(--unit-1) !important; + margin-bottom: var(--unit-1) !important; } .ml-1 { - margin-left: var(--unit-1) !important; + margin-left: var(--unit-1) !important; } .mr-1 { - margin-right: var(--unit-1) !important; + margin-right: var(--unit-1) !important; } .mt-1 { - margin-top: var(--unit-1) !important; + margin-top: var(--unit-1) !important; } .mx-1 { - margin-left: var(--unit-1) !important; - margin-right: var(--unit-1) !important; + margin-left: var(--unit-1) !important; + margin-right: var(--unit-1) !important; } .my-1 { - margin-bottom: var(--unit-1) !important; - margin-top: var(--unit-1) !important; + margin-bottom: var(--unit-1) !important; + margin-top: var(--unit-1) !important; } .m-2 { - margin: var(--unit-2) !important; + margin: var(--unit-2) !important; } .mb-2 { - margin-bottom: var(--unit-2) !important; + margin-bottom: var(--unit-2) !important; } .ml-2 { - margin-left: var(--unit-2) !important; + margin-left: var(--unit-2) !important; } .mr-2 { - margin-right: var(--unit-2) !important; + margin-right: var(--unit-2) !important; } .mt-2 { - margin-top: var(--unit-2) !important; + margin-top: var(--unit-2) !important; } .mx-2 { - margin-left: var(--unit-2) !important; - margin-right: var(--unit-2) !important; + margin-left: var(--unit-2) !important; + margin-right: var(--unit-2) !important; } .my-2 { - margin-bottom: var(--unit-2) !important; - margin-top: var(--unit-2) !important; + margin-bottom: var(--unit-2) !important; + margin-top: var(--unit-2) !important; } .m-4 { - margin: var(--unit-4) !important; + margin: var(--unit-4) !important; } .mb-4 { - margin-bottom: var(--unit-4) !important; + margin-bottom: var(--unit-4) !important; } .ml-4 { - margin-left: var(--unit-4) !important; + margin-left: var(--unit-4) !important; } .mr-4 { - margin-right: var(--unit-4) !important; + margin-right: var(--unit-4) !important; } .mt-4 { - margin-top: var(--unit-4) !important; + margin-top: var(--unit-4) !important; } .mx-4 { - margin-left: var(--unit-4) !important; - margin-right: var(--unit-4) !important; + margin-left: var(--unit-4) !important; + margin-right: var(--unit-4) !important; } .my-4 { - margin-bottom: var(--unit-4) !important; - margin-top: var(--unit-4) !important; + margin-bottom: var(--unit-4) !important; + margin-top: var(--unit-4) !important; } .mx-auto { - margin-left: auto; - margin-right: auto; + margin-left: auto; + margin-right: auto; } /* Text */ .text-normal { - font-weight: normal; + font-weight: normal; } .text-bold { - font-weight: bold; + font-weight: bold; } .text-italic { - font-style: italic; + font-style: italic; } .text-large { - font-size: 1.2em; + font-size: 1.2em; } .text-small { - font-size: .9em; + font-size: 0.9em; } .text-tiny { - font-size: .8em; + font-size: 0.8em; } .text-muted { - opacity: .8; + opacity: 0.8; } .truncate { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } /* Flex */ .align-baseline { - align-items: baseline; + align-items: baseline; } .align-center { - align-items: center; + align-items: center; } .justify-between { - justify-content: space-between; + justify-content: space-between; } diff --git a/bookmarks/styles/theme/variables.css b/bookmarks/styles/theme/variables.css index 775f8e15..2fecf737 100644 --- a/bookmarks/styles/theme/variables.css +++ b/bookmarks/styles/theme/variables.css @@ -1,135 +1,149 @@ :root { - /* Color palette */ - --gray-50: rgb(249, 250, 251); - --gray-100: rgb(243, 244, 246); - --gray-200: rgb(229, 231, 235); - --gray-300: rgb(209, 213, 219); - --gray-400: rgb(156, 163, 175); - --gray-500: rgb(107, 114, 128); - --gray-600: rgb(75, 85, 99); - --gray-700: rgb(55, 65, 81); - --gray-800: rgb(31, 41, 55); - --gray-900: rgb(17, 24, 39); - - --primary-color: hsl(241, 63%, 59%); - --primary-color-highlight: hsl(241, 63%, 64%); - --primary-color-shade: hsl(241, 63%, 59%, 0.075); - - --alternative-color: hsl(179, 94%, 29%); - --alternative-color-dark: hsl(179, 94%, 22%); - - --success-color: hsl(142, 76%, 36%); - --success-color-highlight: hsl(142, 76%, 40%); - --success-color-shade: hsla(142, 76%, 36%, 0.1); - - --warning-color: hsl(38, 92%, 50%); - --warning-color-highlight: hsl(38, 92%, 55%); - --warning-color-shade: hsla(38, 92%, 50%, 0.1); - - --error-color: hsl(0, 72%, 51%); - --error-color-highlight: hsl(0, 72%, 60%); - --error-color-shade: hsla(0, 72%, 51%, 0.1); - - /* Core colors */ - --text-color: var(--gray-700); - --secondary-text-color: var(--gray-500); - --tertiary-text-color: var(--gray-500); - --contrast-text-color: #fff; - --primary-text-color: hsl(241, 63%, 55%); - - --link-color: var(--primary-text-color); - --secondary-link-color: hsla(241, 63%, 54%, 0.8); - - --icon-color: var(--gray-500); - - --border-color: var(--gray-300); - --secondary-border-color: var(--gray-200); - - --body-color: #fff; - --body-color-contrast: var(--gray-100); - - /* Fonts */ - --base-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto; - --mono-font-family: "SF Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Courier, monospace; - --fallback-font-family: "Helvetica Neue", sans-serif; - --cjk-zh-hans-font-family: var(--base-font-family), "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", var(--fallback-font-family); - --cjk-zh-hant-font-family: var(--base-font-family), "PingFang TC", "Hiragino Sans CNS", "Microsoft JhengHei", var(--fallback-font-family); - --cjk-jp-font-family: var(--base-font-family), "Hiragino Sans", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, Meiryo, var(--fallback-font-family); - --cjk-ko-font-family: var(--base-font-family), "Malgun Gothic", var(--fallback-font-family); - --body-font-family: var(--base-font-family), var(--fallback-font-family); - - /* Unit sizes */ - --unit-o: 0.05rem; - --unit-h: 0.1rem; - --unit-1: 0.2rem; - --unit-2: 0.4rem; - --unit-3: 0.6rem; - --unit-4: 0.8rem; - --unit-5: 1rem; - --unit-6: 1.2rem; - --unit-7: 1.4rem; - --unit-8: 1.6rem; - --unit-9: 1.8rem; - --unit-10: 2rem; - --unit-12: 2.4rem; - --unit-16: 3.2rem; - - /* Font sizes */ - --html-font-size: 20px; - --html-line-height: 1.5; - --font-size: 0.7rem; - --font-size-sm: 0.65rem; - --font-size-lg: 0.8rem; - --line-height: 1rem; - - /* Sizes */ - --layout-spacing: var(--unit-2); - --layout-spacing-sm: var(--unit-1); - --layout-spacing-lg: var(--unit-4); - --border-radius: var(--unit-1); - --border-radius-lg: var(--unit-2); - --border-width: var(--unit-o); - --border-width-lg: var(--unit-h); - --control-size: var(--unit-8); - --control-size-sm: var(--unit-6); - --control-size-lg: var(--unit-9); - --control-padding-x: var(--unit-2); - --control-padding-x-sm: calc(var(--unit-2) * 0.75); - --control-padding-x-lg: calc(var(--unit-2) * 1.5); - --control-padding-y: calc((var(--control-size) - var(--line-height)) / 2 - var(--border-width)); - --control-padding-y-sm: calc((var(--control-size-sm) - var(--line-height)) / 2 - var(--border-width)); - --control-padding-y-lg: calc((var(--control-size-lg) - var(--line-height)) / 2 - var(--border-width)); - --control-icon-size: 0.8rem; - - --control-width-xs: 180px; - --control-width-sm: 320px; - --control-width-md: 640px; - --control-width-lg: 960px; - --control-width-xl: 1280px; - - /* Responsive breakpoints */ - --size-xs: 480px; - --size-sm: 600px; - --size-md: 840px; - --size-lg: 960px; - --size-xl: 1280px; - --size-2x: 1440px; - - --responsive-breakpoint: var(--size-xs); - - /* Z-index */ - --zindex-0: 1; - --zindex-1: 100; - --zindex-2: 200; - --zindex-3: 300; - --zindex-4: 400; - - /* Focus */ - --focus-outline: 2px solid var(--primary-color); - --focus-outline-offset: 2px; - - /* Shadows */ - --box-shadow-xs: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px; - --box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + /* Color palette */ + --gray-50: rgb(249, 250, 251); + --gray-100: rgb(243, 244, 246); + --gray-200: rgb(229, 231, 235); + --gray-300: rgb(209, 213, 219); + --gray-400: rgb(156, 163, 175); + --gray-500: rgb(107, 114, 128); + --gray-600: rgb(75, 85, 99); + --gray-700: rgb(55, 65, 81); + --gray-800: rgb(31, 41, 55); + --gray-900: rgb(17, 24, 39); + + --primary-color: hsl(241, 63%, 59%); + --primary-color-highlight: hsl(241, 63%, 64%); + --primary-color-shade: hsl(241, 63%, 59%, 0.075); + + --alternative-color: hsl(179, 94%, 29%); + --alternative-color-dark: hsl(179, 94%, 22%); + + --success-color: hsl(142, 76%, 36%); + --success-color-highlight: hsl(142, 76%, 40%); + --success-color-shade: hsla(142, 76%, 36%, 0.1); + + --warning-color: hsl(38, 92%, 50%); + --warning-color-highlight: hsl(38, 92%, 55%); + --warning-color-shade: hsla(38, 92%, 50%, 0.1); + + --error-color: hsl(0, 72%, 51%); + --error-color-highlight: hsl(0, 72%, 60%); + --error-color-shade: hsla(0, 72%, 51%, 0.1); + + /* Core colors */ + --text-color: var(--gray-700); + --secondary-text-color: var(--gray-500); + --tertiary-text-color: var(--gray-500); + --contrast-text-color: #fff; + --primary-text-color: hsl(241, 63%, 55%); + + --link-color: var(--primary-text-color); + --secondary-link-color: hsla(241, 63%, 54%, 0.8); + + --icon-color: var(--gray-500); + + --border-color: var(--gray-300); + --secondary-border-color: var(--gray-200); + + --body-color: #fff; + --body-color-contrast: var(--gray-100); + + /* Fonts */ + --base-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", + Roboto; + --mono-font-family: "SF Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Courier, + monospace; + --fallback-font-family: "Helvetica Neue", sans-serif; + --cjk-zh-hans-font-family: var(--base-font-family), "PingFang SC", + "Hiragino Sans GB", "Microsoft YaHei", var(--fallback-font-family); + --cjk-zh-hant-font-family: var(--base-font-family), "PingFang TC", + "Hiragino Sans CNS", "Microsoft JhengHei", var(--fallback-font-family); + --cjk-jp-font-family: var(--base-font-family), "Hiragino Sans", + "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, Meiryo, + var(--fallback-font-family); + --cjk-ko-font-family: var(--base-font-family), "Malgun Gothic", + var(--fallback-font-family); + --body-font-family: var(--base-font-family), var(--fallback-font-family); + + /* Unit sizes */ + --unit-o: 0.05rem; + --unit-h: 0.1rem; + --unit-1: 0.2rem; + --unit-2: 0.4rem; + --unit-3: 0.6rem; + --unit-4: 0.8rem; + --unit-5: 1rem; + --unit-6: 1.2rem; + --unit-7: 1.4rem; + --unit-8: 1.6rem; + --unit-9: 1.8rem; + --unit-10: 2rem; + --unit-12: 2.4rem; + --unit-16: 3.2rem; + + /* Font sizes */ + --html-font-size: 20px; + --html-line-height: 1.5; + --font-size: 0.7rem; + --font-size-sm: 0.65rem; + --font-size-lg: 0.8rem; + --line-height: 1rem; + + /* Sizes */ + --layout-spacing: var(--unit-2); + --layout-spacing-sm: var(--unit-1); + --layout-spacing-lg: var(--unit-4); + --border-radius: var(--unit-1); + --border-radius-lg: var(--unit-2); + --border-width: var(--unit-o); + --border-width-lg: var(--unit-h); + --control-size: var(--unit-8); + --control-size-sm: var(--unit-6); + --control-size-lg: var(--unit-9); + --control-padding-x: var(--unit-2); + --control-padding-x-sm: calc(var(--unit-2) * 0.75); + --control-padding-x-lg: calc(var(--unit-2) * 1.5); + --control-padding-y: calc( + (var(--control-size) - var(--line-height)) / 2 - var(--border-width) + ); + --control-padding-y-sm: calc( + (var(--control-size-sm) - var(--line-height)) / 2 - var(--border-width) + ); + --control-padding-y-lg: calc( + (var(--control-size-lg) - var(--line-height)) / 2 - var(--border-width) + ); + --control-icon-size: 0.8rem; + + --control-width-xs: 180px; + --control-width-sm: 320px; + --control-width-md: 640px; + --control-width-lg: 960px; + --control-width-xl: 1280px; + + /* Responsive breakpoints */ + --size-xs: 480px; + --size-sm: 600px; + --size-md: 840px; + --size-lg: 960px; + --size-xl: 1280px; + --size-2x: 1440px; + + --responsive-breakpoint: var(--size-xs); + + /* Z-index */ + --zindex-0: 1; + --zindex-1: 100; + --zindex-2: 200; + --zindex-3: 300; + --zindex-4: 400; + + /* Focus */ + --focus-outline: 2px solid var(--primary-color); + --focus-outline-offset: 2px; + + /* Shadows */ + --box-shadow-xs: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px; + --box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), + 0 4px 6px -4px rgb(0 0 0 / 0.1); } diff --git a/package-lock.json b/package-lock.json index 54b32253..bdd1dfbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "linkding", - "version": "1.33.0", + "version": "1.34.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "linkding", - "version": "1.33.0", + "version": "1.34.0", "license": "MIT", "dependencies": { "@hotwired/turbo": "^8.0.6", @@ -22,7 +22,7 @@ "svelte": "^4.0.0" }, "devDependencies": { - "prettier": "^3.0.2" + "prettier": "^3.3.3" } }, "node_modules/@ampproject/remapping": { @@ -1931,9 +1931,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/package.json b/package.json index 3d3bc858..24cb096d 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "svelte": "^4.0.0" }, "devDependencies": { - "prettier": "^3.0.2" + "prettier": "^3.3.3" }, "web-types": "./web-types.json" }