tanuki-ui
Version:
HTML-first React component library with semantic elements, multi-OS themes, and production-ready visual node editor
439 lines (381 loc) • 16 kB
CSS
:root {
/* Fonts - AWS uses Amazon Ember and system fonts */
--themeDefaultFontFamily: "Amazon Ember", "Helvetica Neue", Roboto, Arial, sans-serif;
--themeControlFontFamily: var(--themeDefaultFontFamily);
--themeLabelFontFamily: var(--themeDefaultFontFamily);
--themeMonospaceFont: Monaco, Menlo, Consolas, "Courier Prime", Courier, "Courier New", monospace;
--themeSystemFont: normal normal 400 14px/1.5 var(--themeDefaultFontFamily);
--textFont: normal normal 400 14px/1.5 var(--themeDefaultFontFamily);
--labelFont: normal normal 500 12px/1.4 var(--themeLabelFontFamily);
/* AWS Color Palette - Dark Mode (default) */
/* Background colors */
--awsSquidInk: #232f3e;
--awsDeepSquidInk: #161e2d;
--awsDarkBackground: #0f1b2a;
--awsCardBackground: #1b2836;
--awsHoverBackground: #2d3e50;
--awsSelectedBackground: #3d5875;
/* AWS Orange - Primary brand color */
--awsOrange: #ff9900;
--awsOrangeLight: #ffb84d;
--awsOrangeDark: #cc7a00;
--awsOrangeSubtle: rgba(255, 153, 0, 0.1);
--awsOrangeMuted: rgba(255, 153, 0, 0.2);
/* Text colors */
--awsTextPrimary: #ffffff;
--awsTextSecondary: #d5dbdb;
--awsTextTertiary: #95a5a6;
--awsTextMuted: #687078;
--awsTextInverse: #232f3e;
/* Border colors */
--awsBorder: #414d5c;
--awsBorderLight: #545f70;
--awsBorderDark: #2a3441;
--awsBorderFocus: var(--awsOrange);
/* Semantic colors */
--awsSuccess: #1e8900;
--awsSuccessLight: #5cb85c;
--awsSuccessSubtle: rgba(30, 137, 0, 0.15);
--awsWarning: #ff9900;
--awsWarningLight: #ffb84d;
--awsWarningSubtle: rgba(255, 153, 0, 0.15);
--awsDanger: #d13212;
--awsDangerLight: #ff5630;
--awsDangerSubtle: rgba(209, 50, 18, 0.15);
--awsInfo: #0073bb;
--awsInfoLight: #2196f3;
--awsInfoSubtle: rgba(0, 115, 187, 0.15);
/* Service colors */
--awsEC2Orange: #ff9900;
--awsS3Green: #569a31;
--awsLambdaOrange: #ff9900;
--awsRDSBlue: #0073bb;
--awsDynamoDBBlue: #4b61d1;
--awsCloudFormationPink: #b0085f;
/* Core Colors */
--textColor: var(--awsTextPrimary);
--accentColor: var(--awsOrange);
--cautionColor: var(--awsDanger);
accent-color: var(--accentColor);
/* Background Colors */
--windowBackgroundColor: var(--awsSquidInk);
--backgroundSecondary: var(--awsDeepSquidInk);
--backgroundTertiary: var(--awsDarkBackground);
--backgroundHover: var(--awsHoverBackground);
--backgroundActive: var(--awsSelectedBackground);
/* No backdrop filters for AWS Console style */
--backgroundBackdropFilter: none;
--windowBackdropFilter: none;
/* Window Shadow */
--windowBoxShadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
/* Scrollbar Colors */
--scrollBarBackgroundColor: transparent;
--scrollBarThumbColor: rgba(255, 255, 255, 0.2);
--activeScrollBarThumbColor: rgba(255, 255, 255, 0.3);
/* Text Colors */
--labelColor: var(--awsTextPrimary);
--secondaryLabelColor: var(--awsTextSecondary);
--tertiaryLabelColor: var(--awsTextTertiary);
--quaternaryLabelColor: var(--awsTextMuted);
--placeholderTextColor: var(--awsTextMuted);
--selectedTextColor: var(--awsTextPrimary);
--textBackgroundColor: var(--windowBackgroundColor);
--selectedTextBackgroundColor: var(--awsOrange);
--keyboardFocusIndicatorColor: var(--awsOrangeMuted);
--unemphasizedSelectedTextColor: var(--awsTextPrimary);
--unemphasizedSelectedTextBackgroundColor: var(--awsSelectedBackground);
--linkColor: var(--awsOrangeLight);
--separatorColor: var(--awsBorder);
--selectedContentBackgroundColor: var(--awsOrange);
--unemphasizedSelectedContentBackgroundColor: var(--awsSelectedBackground);
--selectedMenuItemTextColor: var(--awsTextPrimary);
--gridColor: var(--awsBorder);
--headerTextColor: var(--awsTextPrimary);
/* Control Colors */
--controlAccentColor: var(--awsOrange);
--controlColor: var(--awsCardBackground);
--controlTextColor: var(--awsTextPrimary);
--disabledControlTextColor: var(--awsTextMuted);
--selectedControlColor: var(--awsSelectedBackground);
--selectedControlTextColor: var(--awsTextPrimary);
--alternateSelectedControlTextColor: var(--awsTextInverse);
--scrubberTexturedBackgroundColor: var(--awsCardBackground);
--windowFrameTextColor: var(--awsTextPrimary);
--underPageBackgroundColor: var(--awsDarkBackground);
--findHighlightColor: var(--awsOrangeLight);
--highlightColor: var(--awsTextPrimary);
--shadowColor: rgba(0, 0, 0, 1);
/* System Colors */
--systemBrownColor: #8b6914;
--systemGrayColor: var(--awsTextTertiary);
--systemGreenColor: var(--awsSuccess);
--systemIndigoColor: var(--awsDynamoDBBlue);
--systemOrangeColor: var(--awsOrange);
--systemPinkColor: var(--awsCloudFormationPink);
--systemPurpleColor: #7b68ee;
--systemRedColor: var(--awsDanger);
--systemTealColor: #17a2b8;
--systemYellowColor: var(--awsWarning);
--systemBlueColor: var(--awsInfo);
/* Table */
--tableBackgroundColor: var(--awsCardBackground);
--tableBorderColor: var(--awsBorder);
--tableHeaderTextColor: var(--awsTextSecondary);
--tableHeaderBackgroundColor: var(--awsDeepSquidInk);
--tableHeaderBorderColor: var(--awsBorder);
--tableRowTextColor: var(--awsTextPrimary);
--tableRowBackgroundColor: var(--awsCardBackground);
--tableRowBorderColor: var(--awsBorderDark);
--tableRowAlternateTextColor: var(--awsTextPrimary);
--tableRowAlternateBackgroundColor: var(--awsDeepSquidInk);
--tableRowAlternateBorderColor: var(--awsBorderDark);
/* Dropdown/Select Styles - AWS Console Specific */
--selectDropdownBackground: var(--awsCardBackground);
--selectDropdownBorder: 1px solid var(--awsBorder);
--selectDropdownShadow: 0 2px 8px 0 rgba(0, 28, 36, 0.5);
--selectOptionBackground: var(--awsCardBackground);
--selectOptionHoverBackground: var(--awsHoverBackground);
--selectOptionSelectedBackground: var(--awsSelectedBackground);
--selectOptionTextColor: var(--awsTextPrimary);
--selectOptionBorder: 1px solid var(--awsBorderDark);
--selectSearchBackground: var(--awsBackgroundSecondary);
--selectSearchBorder: 1px solid var(--awsBorder);
--selectSearchTextColor: var(--awsTextPrimary);
/* Make alternating rows more visible in AWS theme */
--tableRowAlternateBackgroundColor: rgba(22, 25, 31, 0.8);
/* Dialog */
--dialogBackground: var(--awsCardBackground);
--dialogBoxShadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
/* Control - AWS Console style */
--controlBoxShadow: none;
--controlFocusBoxShadow: 0 0 0 2px var(--awsOrangeMuted);
--controlTextFont: normal normal 400 14px/20px var(--themeControlFontFamily);
--controlBorderRadius: 2px;
--controlPadding: 6px 16px;
--controlTextLetterSpacing: normal;
--controlTextColor: var(--awsTextPrimary);
--controlBackground: var(--awsCardBackground);
--controlBorder: 1px solid var(--awsBorder);
--controlHoverBackground: var(--awsHoverBackground);
--controlHoverBorder: 1px solid var(--awsBorderLight);
--controlActiveBackground: var(--awsSelectedBackground);
/* Button Primary - AWS Orange */
--controlBoxShadow--primary: 0 1px 0 rgba(0, 0, 0, 0.1);
--controlBackground--primary: var(--awsOrange);
--controlBorder--primary: 1px solid var(--awsOrangeDark);
--controlTextColor--primary: var(--awsTextInverse);
--controlHoverTextColor--primary: var(--awsTextInverse);
--controlHoverBackground--primary: var(--awsOrangeLight);
--controlHoverBorder--primary: 1px solid var(--awsOrange);
--controlFocusBackground--primary: var(--awsOrangeDark);
--controlFocusTextColor--primary: var(--awsTextPrimary);
/* Button Secondary */
--controlBoxShadow--secondary: none;
--controlBackground--secondary: transparent;
--controlBorder--secondary: 1px solid var(--awsBorder);
--controlTextColor--secondary: var(--awsTextPrimary);
--controlHoverBackground--secondary: var(--awsHoverBackground);
--controlHoverBorder--secondary: 1px solid var(--awsBorderLight);
--controlHoverTextColor--secondary: var(--awsTextPrimary);
/* Button Danger */
--controlBoxShadow--danger: 0 1px 0 rgba(0, 0, 0, 0.1);
--controlBackground--danger: var(--awsDanger);
--controlBorder--danger: 1px solid #a02818;
--controlTextColor--danger: var(--awsTextPrimary);
--controlHoverBackground--danger: var(--awsDangerLight);
/* Input - AWS Console style */
--inputPadding: 8px 12px;
--inputBoxShadow: inset 0 1px 2px rgba(0, 0, 0, 0.39);
--inputBorder: 1px solid var(--awsBorder);
--inputBorderRadius: 2px;
--inputFont: normal normal 400 14px/20px var(--themeControlFontFamily);
--inputBackground: var(--awsDarkBackground);
--inputFocusBorder: 1px solid var(--awsOrange);
--inputFocusBoxShadow: 0 0 0 1px var(--awsOrangeMuted);
--inputHoverBorder: 1px solid var(--awsBorderLight);
/* Select Box */
--selectBoxSplitButtonWidth: 30px;
--selectBoxSplitButtonBorderColor: var(--awsBorder);
--selectBoxSplitButtonBorderWidth: 1px;
/* Checkbox */
--checkboxSize: 16px;
--checkboxBorderRadius: 2px;
/* Toolbar */
--barItemsFontFamily: var(--themeLabelFontFamily);
--barItemsTextColor: var(--awsTextPrimary);
--barItemsLabelTextColor: var(--awsTextSecondary);
--barItemsDisabledLabelTextColor: var(--awsTextMuted);
--barItemsDisabledLabelBackgroundColor: var(--awsSelectedBackground);
--barItemsBorderRadius: 2px;
--barItemsControlMarkerBorderRadius: 2px;
--barItemsControlPlaceholderTextColor: var(--awsTextMuted);
--barItemsControlMarkerBackgroundColor: var(--awsCardBackground);
--barItemsControlsBorder: 1px solid var(--awsBorder);
--barItemsSegmentControlBackground: var(--awsCardBackground);
--barItemsHoverSegmentControlBackground: var(--awsHoverBackground);
--barItemsActiveSegmentControlBackground: var(--awsSelectedBackground);
--segmentControlBackgroundColor: var(--awsDeepSquidInk);
/* Sidebar */
--sidebarBackground: var(--awsDeepSquidInk);
--sidebarListItemFont: normal normal 400 14px/1.5 var(--themeDefaultFontFamily);
--sidebarListItemBorderRadius: 0px;
--selectedSidebarListItemBackground: var(--awsSelectedBackground);
--selectedSidebarListItemTextColor: var(--awsOrange);
--selectedSidebarListItemMarker: 3px solid var(--awsOrange);
--sidebarListItemDetailsBackground: var(--awsCardBackground);
--sidebarListItemTextColor: var(--awsTextPrimary);
--sidebarListItemHoverBackground: var(--awsHoverBackground);
--sidebarListItemIconSize: 18px;
--sidebarListItemChildrenPadding: 0 0 0 20px;
--sidebarSectionTitleColor: var(--awsTextSecondary);
--sidebarSectionTitlePadding: 16px 16px 8px 16px;
--sidebarListItemPadding: 10px 16px;
/* Sidebar Section Title - AWS Console Style */
--sidebarSectionTitleFont: var(--labelFont);
--sidebarSectionTitleLetterSpacing: 0.05em;
--sidebarSectionTitleMargin: 24px 0 8px 0;
--sidebarSectionTitleBackground: transparent;
--sidebarSectionTitleBorderRadius: 0;
--sidebarSectionTitleTextTransform: uppercase;
/* App Layout */
--appMainToolbarFloatingBackground: rgba(35, 47, 62, 0.95);
--appMainToolbarHeight: 48px;
/* Tab Bar */
--tabBarBackground: var(--awsDeepSquidInk);
--tabBarBoxShadow: 0 1px 0 0 var(--awsBorder);
--tabItemHeight: 40px;
--tabItemTextColor: var(--awsTextSecondary);
--tabItemBoxShadow: none;
--tabItemIconSize: 16px;
--tabItemFont: normal normal 400 14px/1.5 var(--themeLabelFontFamily);
--tabBarLayout: start;
--tabItemBackground-selected: var(--awsCardBackground);
--tabItemBoxShadow-selected: inset 0 -3px 0 0 var(--awsOrange);
--tabItemTextColor-selected: var(--awsTextPrimary);
--tabItemFont-selected: normal normal 700 14px/1.5 var(--themeLabelFontFamily);
/* Scrolled State */
--scrolledAppMainToolbarBoxShadow: 0 2px 4px 0 rgba(0, 0, 0, 0.37);
/* Segment Control */
--segmentControlPadding: 0px;
--segmentControlSegmentPadding: 8px 16px;
--segmentControlBoxShadow: none;
--segmentControlBackground: transparent;
--segmentControlBorderRadius: 0px;
--segmentControlIndicatorBoxShadow: none;
--segmentControlIndicatorBackground: var(--awsCardBackground);
--segmentControlIndicatorBorder: 1px solid var(--awsBorder);
/* Card */
--cardBackground: var(--awsCardBackground);
--cardBorder: 1px solid var(--awsBorder);
--cardBorderRadius: 2px;
--cardBoxShadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
--cardPadding: 20px;
/* Popover */
--popoverBackground: var(--awsCardBackground);
--popoverBorder: 1px solid var(--awsBorder);
--popoverBorderRadius: 2px;
--popoverBoxShadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
/* AWS Console specific */
--consoleHeaderHeight: 40px;
--consoleSidebarWidth: 240px;
--consoleFooterHeight: 32px;
/* Service icon backgrounds */
--serviceIconSize: 24px;
--serviceIconBorderRadius: 4px;
}
/* Light mode support */
@media (prefers-color-scheme: light) {
body {
/* Light Mode Colors */
--awsSquidInk: #ffffff;
--awsDeepSquidInk: #fafafa;
--awsDarkBackground: #f5f5f5;
--awsCardBackground: #ffffff;
--awsHoverBackground: #f0f0f0;
--awsSelectedBackground: #e6f2ff;
/* Text colors light */
--awsTextPrimary: #16191f;
--awsTextSecondary: #414d5c;
--awsTextTertiary: #687078;
--awsTextMuted: #95a5a6;
--awsTextInverse: #ffffff;
/* Border colors light */
--awsBorder: #d5dbdb;
--awsBorderLight: #c5c5c5;
--awsBorderDark: #e1e4e8;
/* Adjustments for light mode */
--windowBoxShadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15);
--scrollBarThumbColor: rgba(0, 0, 0, 0.2);
--activeScrollBarThumbColor: rgba(0, 0, 0, 0.3);
--backgroundHover: rgba(0, 0, 0, 0.05);
--backgroundActive: rgba(0, 0, 0, 0.1);
/* Input light */
--inputBackground: var(--awsCardBackground);
--inputBoxShadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
/* Control light */
--controlBackground: var(--awsCardBackground);
--controlTextColor: var(--awsTextPrimary);
/* Table light */
--tableBackgroundColor: var(--awsCardBackground);
--tableHeaderBackgroundColor: var(--awsDeepSquidInk);
--tableRowAlternateBackgroundColor: var(--awsDeepSquidInk);
/* Dialog light */
--dialogBoxShadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);
/* Popover light */
--popoverBoxShadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);
/* Tab Bar light */
--tabBarBackground: var(--awsDeepSquidInk);
--tabItemBackground-selected: var(--awsCardBackground);
/* Primary button light */
--controlTextColor--primary: var(--awsTextInverse);
--controlFocusTextColor--primary: var(--awsTextInverse);
/* Secondary button light */
--controlBackground--secondary: var(--awsCardBackground);
--controlTextColor--secondary: var(--awsTextPrimary);
/* Segment Control light */
--segmentControlBackground: var(--awsDeepSquidInk);
--segmentControlIndicatorBackground: var(--awsCardBackground);
/* Sidebar light */
--sidebarBackground: var(--awsDeepSquidInk);
--sidebarListItemDetailsBackground: var(--awsCardBackground);
--sidebarListItemTextColor: var(--awsTextPrimary);
--sidebarListItemHoverBackground: var(--awsHoverBackground);
--sidebarSectionTitleColor: var(--awsTextSecondary);
}
}
/* Scrollbar Styling - AWS style */
body ::-webkit-scrollbar {
width: 8px;
height: 8px;
background: transparent;
}
body ::-webkit-scrollbar-corner {
background: transparent;
user-select: none;
}
body ::-webkit-scrollbar-thumb {
background: var(--scrollBarThumbColor);
border-radius: 0px;
}
body ::-webkit-scrollbar-track {
background: transparent;
}
body ::-webkit-scrollbar-thumb:hover {
background: var(--activeScrollBarThumbColor);
}
/* High Contrast Support */
@media (prefers-contrast: high) {
body {
--awsBorder: currentColor;
--controlBorder: 1px solid currentColor;
--inputBorder: 1px solid currentColor;
--controlFocusBoxShadow: 0 0 0 2px var(--awsOrange);
--inputFocusBoxShadow: 0 0 0 2px var(--awsOrange);
}
}
/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
body {
--animationDuration: 0ms;
}
}