mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 07:43:35 +00:00
* [CL-245] Update palette to new light and dark theme colors (#8633) * [CL-245] Add new color swatches to storybook (#8697) * [CL-238] update typography (#8997) * [CL-230] [CL-296] Update button styles (#9345) * [CL-237] Update menu styles for extension refresh (#9525) * [CL-267] Add 100-level color variants and update primary-600 (#9550) * [CL-286] Update badge to use focus-visible instead of focus (#9551) * [CL-250] Update badge styles for extension refresh (#9572) * [CL-234] callout style refresh (#9920) * [CL-233] Update form field styles (#9776) * [CL-239][CL-251][CL-342] dialog style refresh (#10096) * [CL-239] simple dialog style refresh * [CL-342] fix text overflow in dialog; add story * [CL-244] readonly fields (#10164) * [CL-352] Fix Angular errors related to form element changes (#10211) * [CL-273] Update styles for checkbox and form control (#10146) * [CL-274] Update styling for radio button (#10333) * [CL-338] Remove extra space in item content when end slot is empty (#10350) * [CL-377] Fix extension style conflict for input background (#10351) * [CL-271] Update styles for toggle (#10377) * [CL-381] Update spacing around form elements (#10432) * [CL-229] Update icon button styles (#10405) * [CL-380] Remove hover state from disabled form fields (#10639) * [CL-405] Allow toggle group input to be full width (#10658) * [CL-389] Exclude end slot label content from truncation (#10508) * [CL-383] Remove manual focus when password toggle is clicked (#10749) * [CL-278][CL-391] misc bit-item style fixes (#10758) * [CL-391] use pointer cursor on hover when link or button * [CL-210] Change base font size from 14px to 16px (#10779) * [CL-291] Finalize styling for chip select (#10771) * [CL-257] update banner component styles (#10766) * [CL-443] Fix sizing issues (#10893) * [CL-445] Fix small sizing and spacing issues (#10962) * [CL-382] Reduce element shifting on readonly hover (#10956) * [CL-396] Update theme colors to new hexes (#10968) * [CL-395] Remove text headers color (#10997) * [CL-404] Switch to primary-600 for all focus indicators (#11015) * [CL-397] Remove primary-500 (#11036) * [CL-447] Ensure DM Sans displays correctly at all font weights (#11041) * [CL-448] Scrollbar Styles (#11111) * CL-252/update toast (#10996) * [CL-275] Update link styles (#11174) * [CL-446] Update hover state for unselected chip selects (#11172) * [CL-454] Improve color a11y for toast and banner interactive elements (#11200) * [CL-457] Center input text for select and multiselect (#11239) * [CL-455] Do not use responsive margin for sections in dialogs or extension (#11243) * [CL-459] Fix chip behavior when opening menu while item is selected (#11227) * [CL-388] Update vertical nav colors for new palette (#11226) * scope styled scrollbar to only select elements (#11247) * edit radio buttons to be block inputs and update spacing (#11291) * [CL-453] Fix multiselect chip spacing and truncation (#11300) * [PM-11131] Prevent duplicated sr labels on form field icon buttons (#11383) * [CL-303] Prevent chip menu from running offscreen (#11348) * [CL-476] Fix DM Sans font on Windows (#11409) * implements scrollbar styles for firefox/chrome and safari (#11447) * [CL-472] Fix search background color in extension (#11466) * [CL-481] Style updates for bit-item, bit-card, and primary-100 (#11473) * [CL-478] Remove underline on hover for most components (#11477) * [CL-477] Remove focus styles for readonly input (#11510) * [CL-487] Fix vault items virtual scroll height (#11581) * [PM-8625] Increase popup width (#11686) * [CL-494] Wrap long words in toggle group (#11659) * [CL-13820] Add class to remove link underline (#11762) * [CL-435] Prevent Windows extension from shifting (#11851) * [CL-503] Add notification color variables (#11802) * [PM-14043] Update size of toggle group label to fit more content (#11881) * [CL-498] Set chip menu width minimum to chip select width (#11905) --------- Co-authored-by: Will Martin <contact@willmartian.com> Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com> Co-authored-by: Merissa Weinstein <merissa.k.weinstein@gmail.com> Co-authored-by: Danielle Flinn <43477473+danielleflinn@users.noreply.github.com>
358 lines
10 KiB
SCSS
358 lines
10 KiB
SCSS
$dark-icon-themes: "theme_dark";
|
|
|
|
$primary: #175ddc;
|
|
$primary-accent: #1252a3;
|
|
$secondary: #ced4da;
|
|
$secondary-alt: #1a3b66;
|
|
$success: #017e45;
|
|
$info: #555555;
|
|
$warning: #8b6609;
|
|
$danger: #c83522;
|
|
$white: #ffffff;
|
|
|
|
// Bootstrap Variable Overrides
|
|
|
|
$theme-colors: (
|
|
"primary-accent": $primary-accent,
|
|
"secondary-alt": $secondary-alt,
|
|
);
|
|
|
|
$body-bg: $white;
|
|
$body-color: #333333;
|
|
|
|
$font-family-sans-serif: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif,
|
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
|
|
$h1-font-size: 1.7rem;
|
|
$h2-font-size: 1.3rem;
|
|
$h3-font-size: 1rem;
|
|
$h4-font-size: 1rem;
|
|
$h5-font-size: 1rem;
|
|
$h6-font-size: 1rem;
|
|
|
|
$small-font-size: 90%;
|
|
$font-size-lg: 1.15rem;
|
|
$code-font-size: 100%;
|
|
|
|
$navbar-padding-y: 0.75rem;
|
|
$grid-gutter-width: 20px;
|
|
$card-spacer-y: 0.6rem;
|
|
|
|
$list-group-item-padding-y: 0.6rem;
|
|
$list-group-active-color: $body-color;
|
|
$list-group-active-bg: $white;
|
|
$list-group-active-border-color: rgba(#000000, 0.125);
|
|
|
|
$dropdown-link-color: $body-color;
|
|
$dropdown-link-hover-bg: rgba(#000000, 0.06);
|
|
$dropdown-link-active-color: $dropdown-link-color;
|
|
$dropdown-link-active-bg: rgba(#000000, 0.1);
|
|
$dropdown-item-padding-x: 1rem;
|
|
|
|
$navbar-brand-font-size: 35px;
|
|
$navbar-brand-height: 35px;
|
|
$navbar-brand-padding-y: 0;
|
|
$navbar-dark-color: rgba($white, 0.7);
|
|
$navbar-dark-hover-color: rgba($white, 0.9);
|
|
$navbar-nav-link-padding-x: 0.8rem;
|
|
|
|
$input-bg: #fbfbfb;
|
|
$input-focus-bg: $white;
|
|
$input-disabled-bg: #e0e0e0;
|
|
$input-placeholder-color: #b4b4b4;
|
|
|
|
$table-accent-bg: rgba(#000000, 0.02);
|
|
$table-hover-bg: rgba(#000000, 0.03);
|
|
|
|
$modal-backdrop-opacity: 0.3;
|
|
$btn-font-weight: 600;
|
|
$lead-font-weight: normal;
|
|
|
|
$grid-breakpoints: (
|
|
xs: 0,
|
|
sm: 1px,
|
|
md: 2px,
|
|
lg: 3px,
|
|
xl: 4px,
|
|
);
|
|
|
|
$border-color: $secondary;
|
|
|
|
// MFA Types for logo styling with no dark theme alternative
|
|
|
|
$mfaTypes: 0, 2, 3, 4, 6;
|
|
|
|
// Theme Variables
|
|
// Light
|
|
|
|
$lightDangerHover: #c83522;
|
|
$lightInputColor: #465057;
|
|
$lightInputPlaceholderColor: #b6b8b8;
|
|
|
|
// Dark
|
|
|
|
$darkPrimary: #6a99f0;
|
|
$darkPrimary-alt: #b4ccf9;
|
|
$darkDanger: #ff8d85;
|
|
$darkDangerHover: #ffbfbb;
|
|
$darkSuccess: #52e07c;
|
|
$darkWarning: #ffeb66;
|
|
$darkInfo: #a4b0c6;
|
|
$darkLinks: #6a99f0;
|
|
$darkGrey1: #bac0ce;
|
|
$darkGrey2: #8d94a5;
|
|
$darkBlue1: #4c525f;
|
|
$darkBlue2: #3c424e;
|
|
$darkDarkBlue1: #2f343d;
|
|
$darkDarkBlue2: #1f242e;
|
|
$darkInputColor: $white;
|
|
$darkInputPlaceholderColor: $darkGrey1;
|
|
|
|
$themes: (
|
|
light: (
|
|
primary: $primary,
|
|
primaryAlt: $primary-accent,
|
|
danger: $danger,
|
|
info: #343a40,
|
|
success: $success,
|
|
warning: $warning,
|
|
backgroundColor: $white,
|
|
badgeDangerBackground: $danger,
|
|
badgeDangerText: $white,
|
|
badgeInfoBackground: #555555,
|
|
badgeInfoText: $white,
|
|
badgePrimaryBackground: $primary,
|
|
badgePrimaryBackgroundHover: #134eb9,
|
|
badgePrimaryText: $white,
|
|
badgeSecondaryBackground: #ced4da,
|
|
badgeSecondaryText: #212529,
|
|
bgLightColor: #f8f9fa,
|
|
bgPrimaryColor: $primary,
|
|
borderColor: $border-color,
|
|
borderPrimaryColor: $primary,
|
|
browserInputIconsFilter: invert(0),
|
|
btnDanger: $danger,
|
|
btnDangerHover: $lightDangerHover,
|
|
btnDangerText: $white,
|
|
btnLinkText: $primary,
|
|
btnLinkTextHover: #104097,
|
|
btnOutlineDangerBackground: $input-bg,
|
|
btnOutlineDangerBackgroundHover: $danger,
|
|
btnOutlineDangerBorder: #ced4da,
|
|
btnOutlineDangerBorderHover: $danger,
|
|
btnOutlineDangerText: $danger,
|
|
btnOutlineDangerTextHover: $white,
|
|
btnOutlinePrimaryBackground: $input-bg,
|
|
btnOutlinePrimaryBackgroundHover: $primary,
|
|
btnOutlinePrimaryBorder: #ced4da,
|
|
btnOutlinePrimaryBorderHover: $primary,
|
|
btnOutlinePrimaryText: $primary,
|
|
btnOutlinePrimaryTextHover: $white,
|
|
btnOutlineSecondaryBackground: $input-bg,
|
|
btnOutlineSecondaryBackgroundHover: #ced4da,
|
|
btnOutlineSecondaryBorder: #ced4da,
|
|
btnOutlineSecondaryBorderHover: #ced4da,
|
|
btnOutlineSecondaryText: #6c757d,
|
|
btnOutlineSecondaryTextHover: #333333,
|
|
btnPrimary: $primary,
|
|
btnPrimaryBorderHover: #1249ae,
|
|
btnPrimaryHover: #134eb9,
|
|
btnPrimaryText: $white,
|
|
btnSecondary: $secondary,
|
|
btnSecondaryBorder: $secondary,
|
|
btnSecondaryBorderHover: #b1bbc4,
|
|
btnSecondaryHover: #b8c1ca,
|
|
btnSecondaryText: #212529,
|
|
btnSecondaryTextHover: #212529,
|
|
calloutBackground: #fafafa,
|
|
calloutColor: #212529,
|
|
cdkDraggingBackground: $white,
|
|
codeColor: #e83e8c,
|
|
dropdownBackground: $white,
|
|
dropdownHover: rgba(0, 0, 0, 0.06),
|
|
dropdownTextColor: $body-color,
|
|
dropdownTextMuted: #6c757d,
|
|
focus: rgb(23 93 220 / 25%),
|
|
footerBackgroundColor: #fbfbfb,
|
|
foregroundColor: $white,
|
|
headerColor: rgba(0, 0, 0, 0.03),
|
|
iconColor: #777777,
|
|
iconHover: $body-color,
|
|
imgFilter: invert(0) grayscale(0),
|
|
inputBackgroundColor: $input-bg,
|
|
inputBorderColor: $border-color,
|
|
inputDisabledBackground: #e0e0e0,
|
|
inputDisabledColor: #6c757d,
|
|
inputPlaceholderColor: $lightInputPlaceholderColor,
|
|
inputTextColor: $lightInputColor,
|
|
layoutFrontendColor: #ecf0f5,
|
|
learnMoreHover: #104097,
|
|
linkColor: $primary,
|
|
linkColorHover: #104097,
|
|
linkWeight: 400,
|
|
listItemActive: $body-color,
|
|
listItemBorder: rgba(0, 0, 0, 0.125),
|
|
loadingSvg: url("../images/loading.svg"),
|
|
logoSuffix: "dark",
|
|
mfaLogoSuffix: ".png",
|
|
navActiveBackground: $white,
|
|
navActiveWeight: 600,
|
|
navBackground: $primary,
|
|
navBackgroundAlt: $secondary-alt,
|
|
navOrgBackgroundColor: #fbfbfb,
|
|
navWeight: 600,
|
|
pwLetter: $body-color,
|
|
pwNumber: #007fde,
|
|
pwSpecial: #c40800,
|
|
pwStrengthBackground: #e9ecef,
|
|
separator: $secondary,
|
|
separatorHr: rgb(0, 0, 0, 0.1),
|
|
tableColorHover: #333333,
|
|
tableLinkColor: $primary,
|
|
tableLinkColorHover: #104097,
|
|
tableRowHover: rgba(0, 0, 0, 0.03),
|
|
tableSeparator: #dee2e6,
|
|
textColor: $body-color,
|
|
textDangerColor: $white,
|
|
textInfoColor: $white,
|
|
textHeadingColor: #333333,
|
|
textMuted: #6c757d,
|
|
textSuccessColor: $white,
|
|
textWarningColor: $white,
|
|
),
|
|
dark: (
|
|
primary: $darkPrimary,
|
|
primaryAlt: $darkPrimary-alt,
|
|
danger: $darkDanger,
|
|
info: $darkInfo,
|
|
success: $darkSuccess,
|
|
warning: $darkWarning,
|
|
backgroundColor: $darkDarkBlue2,
|
|
badgeDangerBackground: $darkDanger,
|
|
badgeDangerText: $darkDarkBlue2,
|
|
badgeInfoBackground: $darkInfo,
|
|
badgeInfoText: $darkDarkBlue2,
|
|
badgePrimaryBackground: $darkLinks,
|
|
badgePrimaryBackgroundHover: $darkPrimary-alt,
|
|
badgePrimaryText: $darkDarkBlue2,
|
|
badgeSecondaryBackground: $darkGrey2,
|
|
badgeSecondaryText: $darkDarkBlue2,
|
|
bgLightColor: $darkDarkBlue2,
|
|
bgPrimaryColor: $darkPrimary,
|
|
borderColor: $darkBlue1,
|
|
borderPrimaryColor: $darkPrimary,
|
|
browserInputIconsFilter: invert(1),
|
|
btnDanger: $darkDanger,
|
|
btnDangerHover: $darkDangerHover,
|
|
btnDangerText: $darkDarkBlue2,
|
|
btnLinkText: $white,
|
|
btnLinkTextHover: $darkGrey1,
|
|
btnOutlineDangerBackground: $darkDanger,
|
|
btnOutlineDangerBackgroundHover: $darkDangerHover,
|
|
btnOutlineDangerBorder: $darkDanger,
|
|
btnOutlineDangerBorderHover: $darkDangerHover,
|
|
btnOutlineDangerText: $darkDarkBlue2,
|
|
btnOutlineDangerTextHover: $darkDarkBlue2,
|
|
btnOutlinePrimaryBackground: $darkPrimary,
|
|
btnOutlinePrimaryBackgroundHover: $darkPrimary-alt,
|
|
btnOutlinePrimaryBorder: $darkPrimary,
|
|
btnOutlinePrimaryBorderHover: $darkPrimary-alt,
|
|
btnOutlinePrimaryText: $darkDarkBlue2,
|
|
btnOutlinePrimaryTextHover: $darkDarkBlue2,
|
|
btnOutlineSecondaryBackground: transparent,
|
|
btnOutlineSecondaryBackgroundHover: transparent,
|
|
btnOutlineSecondaryBorder: $darkGrey1,
|
|
btnOutlineSecondaryBorderHover: $darkGrey2,
|
|
btnOutlineSecondaryText: $white,
|
|
btnOutlineSecondaryTextHover: $darkGrey2,
|
|
btnPrimary: $darkLinks,
|
|
btnPrimaryBorderHover: $darkPrimary-alt,
|
|
btnPrimaryHover: $darkPrimary-alt,
|
|
btnPrimaryText: $darkDarkBlue2,
|
|
btnSecondary: transparent,
|
|
btnSecondaryBorder: $darkGrey1,
|
|
btnSecondaryBorderHover: $darkGrey2,
|
|
btnSecondaryHover: transparent,
|
|
btnSecondaryText: $white,
|
|
btnSecondaryTextHover: $darkGrey2,
|
|
calloutBackground: $darkBlue2,
|
|
calloutColor: $white,
|
|
cdkDraggingBackground: $darkDarkBlue1,
|
|
codeColor: #e83e8c,
|
|
dropdownBackground: $darkDarkBlue1,
|
|
dropdownHover: rgba(255, 255, 255, 0.03),
|
|
dropdownTextColor: $white,
|
|
dropdownTextMuted: #bec6cf,
|
|
focus: rgb(106 153 240 / 25%),
|
|
footerBackgroundColor: $darkBlue1,
|
|
foregroundColor: $darkDarkBlue1,
|
|
headerColor: $darkBlue1,
|
|
iconColor: #777777,
|
|
iconHover: $darkGrey2,
|
|
imgFilter: invert(1) grayscale(1),
|
|
inputBackgroundColor: transparent,
|
|
inputBorderColor: $darkGrey1,
|
|
inputDisabledBackground: $darkBlue2,
|
|
inputDisabledColor: $darkGrey1,
|
|
inputPlaceholderColor: $darkInputPlaceholderColor,
|
|
inputTextColor: $darkInputColor,
|
|
layoutFrontendColor: $darkDarkBlue2,
|
|
learnMoreHover: $darkPrimary-alt,
|
|
linkColor: $darkLinks,
|
|
linkColorHover: $darkLinks,
|
|
linkWeight: 600,
|
|
listItemActive: $darkPrimary,
|
|
listItemBorder: $darkBlue1,
|
|
loadingSvg: url("../images/loading-white.svg"),
|
|
logoSuffix: "white",
|
|
mfaLogoSuffix: "-w.png",
|
|
navActiveBackground: $darkDarkBlue2,
|
|
navActiveWeight: 600,
|
|
navBackground: $darkDarkBlue1,
|
|
navBackgroundAlt: $darkDarkBlue1,
|
|
navOrgBackgroundColor: #161c26,
|
|
navWeight: 400,
|
|
pwLetter: $white,
|
|
pwNumber: #52bdfb,
|
|
pwSpecial: #ff7c70,
|
|
pwStrengthBackground: $darkBlue2,
|
|
separator: $darkBlue1,
|
|
separatorHr: $darkBlue1,
|
|
tableColorHover: $darkGrey1,
|
|
tableLinkColor: $white,
|
|
tableLinkColorHover: $white,
|
|
tableRowHover: rgba(255, 255, 255, 0.03),
|
|
tableSeparator: $darkBlue1,
|
|
textColor: $darkGrey1,
|
|
textDangerColor: $darkDarkBlue2,
|
|
textHeadingColor: $white,
|
|
textInfoColor: $darkDarkBlue2,
|
|
textMuted: $darkGrey1,
|
|
textSuccessColor: $darkDarkBlue2,
|
|
textWarningColor: $darkDarkBlue2,
|
|
),
|
|
);
|
|
|
|
@mixin themify($themes: $themes) {
|
|
@each $theme, $map in $themes {
|
|
html.theme_#{$theme} & {
|
|
$theme-map: () !global;
|
|
@each $key, $submap in $map {
|
|
$value: map-get(map-get($themes, $theme), "#{$key}");
|
|
$theme-map: map-merge(
|
|
$theme-map,
|
|
(
|
|
$key: $value,
|
|
)
|
|
) !global;
|
|
}
|
|
@content;
|
|
$theme-map: null !global;
|
|
}
|
|
}
|
|
}
|
|
|
|
@function themed($key) {
|
|
@return map-get($theme-map, $key);
|
|
}
|