@c8y/style 1023.17.20 → 1023.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/branding-login.scss +17 -0
- package/branding.scss +15 -0
- package/export.scss +1 -0
- package/extend.scss +4 -0
- package/login.scss +17 -0
- package/main.scss +6 -0
- package/package.json +1 -1
- package/styles/README.md +204 -0
- package/styles/_login-app.scss +34 -0
- package/styles/_mixins.scss +47 -0
- package/styles/_utilities.scss +21 -0
- package/styles/animations/_animate.less +648 -0
- package/styles/animations/_animate.scss +654 -0
- package/styles/animations/_component-animations.scss +70 -0
- package/styles/animations/_realtime-animation-list.scss +21 -0
- package/styles/animations/_spinner-snake.scss +73 -0
- package/styles/{_spinner.less → animations/_spinner.less} +0 -3
- package/styles/animations/_spinner.scss +165 -0
- package/styles/base/_normalize.scss +309 -0
- package/styles/base/_print.scss +159 -0
- package/styles/base/_scaffolding.scss +162 -0
- package/styles/{_type.less → base/_type.less} +2 -2
- package/styles/base/_type.scss +350 -0
- package/styles/components/_markdown-content.less +75 -0
- package/styles/components/_markdown-content.scss +82 -0
- package/styles/{_smartrules.less → components/_smartrules.less} +120 -97
- package/styles/components/_smartrules.scss +392 -0
- package/styles/{_range-display.less → components/data-display-and-visualization/_range-display.less} +67 -49
- package/styles/components/data-display-and-visualization/_range-display.scss +488 -0
- package/styles/{_timelines-chart.less → components/data-display-and-visualization/_timelines-chart.less} +42 -33
- package/styles/components/data-display-and-visualization/_timelines-chart.scss +45 -0
- package/styles/{_c8y-data-point-list.less → components/data-display-and-visualization/lists/_c8y-data-point-list.less} +2 -20
- package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.scss +32 -0
- package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.scss +164 -0
- package/styles/{_c8y-list-group.less → components/data-display-and-visualization/lists/_c8y-list-group.less} +1 -1
- package/styles/components/data-display-and-visualization/lists/_c8y-list-group.scss +789 -0
- package/styles/components/data-display-and-visualization/lists/_cards-layout.scss +415 -0
- package/styles/{_list-group.less → components/data-display-and-visualization/lists/_list-group.less} +4 -2
- package/styles/components/data-display-and-visualization/lists/_list-group.scss +381 -0
- package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.scss +36 -0
- package/styles/components/data-display-and-visualization/lists/_timeline-list.scss +240 -0
- package/styles/components/data-display-and-visualization/lists/timeline-list.less +216 -0
- package/styles/components/data-display-and-visualization/tables/_data-grid.scss +814 -0
- package/styles/{_resizable-grid.less → components/data-display-and-visualization/tables/_resizable-grid.less} +0 -3
- package/styles/components/data-display-and-visualization/tables/_resizable-grid.scss +138 -0
- package/styles/components/data-display-and-visualization/tables/_tables.scss +411 -0
- package/styles/{_c8y-ai-chat.less → components/data-input/_c8y-ai-chat.less} +44 -28
- package/styles/components/data-input/_c8y-ai-chat.scss +212 -0
- package/styles/components/data-input/assets/_asset-property-list.scss +285 -0
- package/styles/{_asset-table.less → components/data-input/assets/_asset-table.less} +3 -6
- package/styles/components/data-input/assets/_asset-table.scss +95 -0
- package/styles/components/data-input/assets/_c8y-asset-notes.scss +41 -0
- package/styles/components/data-input/assets/_c8y-asset-selector-miller.scss +134 -0
- package/styles/{_c8y-asset-selector.less → components/data-input/assets/_c8y-asset-selector.less} +1 -1
- package/styles/components/data-input/assets/_c8y-asset-selector.scss +178 -0
- package/styles/components/data-input/assets/_c8y-child-assets-selector.scss +231 -0
- package/styles/{_app-switcher.less → components/navigation-and-layout/action-bars/_app-switcher.less} +1 -1
- package/styles/components/navigation-and-layout/action-bars/_app-switcher.scss +111 -0
- package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.scss +418 -0
- package/styles/{_card-dashboard.less → components/navigation-and-layout/cards/_card-dashboard.less} +2 -5
- package/styles/components/navigation-and-layout/cards/_card-dashboard.scss +179 -0
- package/styles/components/navigation-and-layout/cards/_card-flip.scss +104 -0
- package/styles/components/navigation-and-layout/cards/_card-grid.scss +95 -0
- package/styles/{_card.less → components/navigation-and-layout/cards/_card.less} +18 -22
- package/styles/components/navigation-and-layout/cards/_card.scss +769 -0
- package/styles/{_panels.less → components/navigation-and-layout/cards/_panels.less} +11 -21
- package/styles/components/navigation-and-layout/cards/_panels.scss +514 -0
- package/styles/{_breadcrumbs.less → components/navigation-and-layout/navigation/_breadcrumbs.less} +0 -29
- package/styles/components/navigation-and-layout/navigation/_breadcrumbs.scss +61 -0
- package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.scss +85 -0
- package/styles/components/navigation-and-layout/navigation/_main-header.scss +510 -0
- package/styles/{_navbar.less → components/navigation-and-layout/navigation/_navbar.less} +7 -6
- package/styles/components/navigation-and-layout/navigation/_navbar.scss +488 -0
- package/styles/components/navigation-and-layout/navigation/_navigator.scss +454 -0
- package/styles/components/navigation-and-layout/navigation/_navs.scss +118 -0
- package/styles/components/navigation-and-layout/navigation/_pagination.scss +148 -0
- package/styles/components/navigation-and-layout/navigation/_steps-navbar.scss +101 -0
- package/styles/{_tabs.less → components/navigation-and-layout/navigation/_tabs.less} +1 -1
- package/styles/components/navigation-and-layout/navigation/_tabs.scss +254 -0
- package/styles/components/navigation-and-layout/navigation/steps-navbar.less +98 -0
- package/styles/components/specialized/_boxed-label.scss +36 -0
- package/styles/components/specialized/_c8y-cookie-banner.scss +37 -0
- package/styles/{_c8y-countdown-interval.less → components/specialized/_c8y-countdown-interval.less} +1 -1
- package/styles/components/specialized/_c8y-countdown-interval.scss +126 -0
- package/styles/{_c8y-data-explorer.less → components/specialized/_c8y-data-explorer.less} +12 -115
- package/styles/components/specialized/_c8y-data-explorer.scss +260 -0
- package/styles/components/specialized/_c8y-datapoint-pill.scss +105 -0
- package/styles/{_c8y-login.less → components/specialized/_c8y-login.less} +3 -3
- package/styles/components/specialized/_c8y-login.scss +120 -0
- package/styles/components/specialized/_c8y-message-banner.less +37 -0
- package/styles/components/specialized/_c8y-message-banner.scss +52 -0
- package/styles/components/specialized/_c8y-pulse.scss +118 -0
- package/styles/components/specialized/_c8y-range.scss +237 -0
- package/styles/{_c8y-role-card.less → components/specialized/_c8y-role-card.less} +2 -22
- package/styles/components/specialized/_c8y-role-card.scss +68 -0
- package/styles/{_c8y-schema-form.less → components/specialized/_c8y-schema-form.less} +1 -5
- package/styles/components/specialized/_c8y-schema-form.scss +193 -0
- package/styles/components/specialized/_c8y-scrollbar.scss +82 -0
- package/styles/components/specialized/_c8y-smart-rest-tab.scss +75 -0
- package/styles/{_c8y-stepper.less → components/specialized/_c8y-stepper.less} +3 -3
- package/styles/components/specialized/_c8y-stepper.scss +110 -0
- package/styles/{_c8y-user-roles.less → components/specialized/_c8y-user-roles.less} +6 -7
- package/styles/components/specialized/_c8y-user-roles.scss +351 -0
- package/styles/{_c8y-utils.less → components/specialized/_c8y-utils.less} +0 -3
- package/styles/components/specialized/_c8y-utils.scss +109 -0
- package/styles/components/specialized/_code.scss +94 -0
- package/styles/components/specialized/_device-software-tab.scss +52 -0
- package/styles/components/specialized/_dtm-icon-selector.scss +84 -0
- package/styles/{_measurements-time-control.less → components/specialized/_measurements-time-control.less} +12 -52
- package/styles/components/specialized/_measurements-time-control.scss +237 -0
- package/styles/components/specialized/_search-header.scss +126 -0
- package/styles/{_smart-list-icon-label.less → components/specialized/_smart-list-icon-label.less} +1 -1
- package/styles/components/specialized/_smart-list-icon-label.scss +75 -0
- package/styles/components/specialized/_static-assets-file-picker.scss +23 -0
- package/styles/{_status.less → components/specialized/_status.less} +11 -11
- package/styles/components/specialized/_status.scss +106 -0
- package/styles/components/specialized/_statusContainer.scss +62 -0
- package/styles/core/buttons/_button-groups.scss +202 -0
- package/styles/{_buttons.less → core/buttons/_buttons.less} +30 -21
- package/styles/core/buttons/_buttons.scss +1318 -0
- package/styles/{_alerts.less → core/feedback/_alerts.less} +2 -6
- package/styles/core/feedback/_alerts.scss +243 -0
- package/styles/core/feedback/_badges.scss +85 -0
- package/styles/core/feedback/_close.scss +54 -0
- package/styles/{_labels.less → core/feedback/_labels.less} +1 -1
- package/styles/core/feedback/_labels.scss +93 -0
- package/styles/core/feedback/_progress-bars.scss +96 -0
- package/styles/{_tag.less → core/feedback/_tag.less} +1 -1
- package/styles/core/feedback/_tag.scss +103 -0
- package/styles/core/feedback/_tooltip.scss +147 -0
- package/styles/{_c8y-switch.less → core/forms/_c8y-switch.less} +2 -2
- package/styles/core/forms/_c8y-switch.scss +226 -0
- package/styles/{_file-picker.less → core/forms/_file-picker.less} +1 -1
- package/styles/core/forms/_file-picker.scss +219 -0
- package/styles/{_forms.less → core/forms/_forms.less} +14 -16
- package/styles/core/forms/_forms.scss +1183 -0
- package/styles/{_input-groups.less → core/forms/_input-groups.less} +2 -2
- package/styles/core/forms/_input-groups.scss +700 -0
- package/styles/{_c8y-dashboard-modal.less → core/overlays/_c8y-dashboard-modal.less} +3 -3
- package/styles/core/overlays/_c8y-dashboard-modal.scss +86 -0
- package/styles/{_c8y-wizard.less → core/overlays/_c8y-wizard.less} +1 -1
- package/styles/core/overlays/_c8y-wizard.scss +226 -0
- package/styles/{_dropdowns.less → core/overlays/_dropdowns.less} +4 -4
- package/styles/core/overlays/_dropdowns.scss +815 -0
- package/styles/{_modals.less → core/overlays/_modals.less} +7 -8
- package/styles/core/overlays/_modals.scss +461 -0
- package/styles/core/overlays/_popovers.scss +183 -0
- package/styles/dashboard/_availability-pie.scss +33 -0
- package/styles/{_c8y-dashboard-style.less → dashboard/_c8y-dashboard-style.less} +4 -6
- package/styles/dashboard/_c8y-dashboard-style.scss +409 -0
- package/styles/{_c8y-gauges.less → dashboard/_c8y-gauges.less} +1 -1
- package/styles/dashboard/_c8y-gauges.scss +62 -0
- package/styles/dashboard/_dashboard-widgets.scss +47 -0
- package/styles/dashboard/_info-gauge.scss +107 -0
- package/styles/dashboard/_quick-links-widget.scss +49 -0
- package/styles/dashboard/_welcome-widget.scss +68 -0
- package/styles/dashboard/_welcome.scss +138 -0
- package/styles/dashboard/welcome-widget.less +50 -0
- package/styles/dashboard/welcome.less +128 -0
- package/styles/icons/_c8y-glyphs.scss +63 -0
- package/styles/{_c8y-icons.less → icons/_c8y-icons.less} +12 -12
- package/styles/icons/_c8y-icons.scss +1209 -0
- package/styles/icons/_dlt-c8y-icons-stroke.less +1856 -0
- package/styles/icons/_dlt-c8y-icons-stroke.scss +3667 -0
- package/styles/{_dlt-c8y-icons.less → icons/_dlt-c8y-icons.less} +5 -112
- package/styles/icons/_dlt-c8y-icons.scss +9204 -0
- package/styles/icons/_marker-icons.less +22 -0
- package/styles/icons/_marker-icons.scss +33 -0
- package/styles/index.less +233 -152
- package/styles/index.scss +240 -0
- package/styles/layout/_bottom-drawer.scss +59 -0
- package/styles/layout/_c8y-help-drawer.scss +104 -0
- package/styles/layout/_c8y-right-drawer.scss +150 -0
- package/styles/layout/_c8y-top-drawer.scss +117 -0
- package/styles/{_grid.less → layout/_grid.less} +3 -18
- package/styles/layout/_grid.scss +114 -0
- package/styles/layout/_group-info.scss +27 -0
- package/styles/{_layouts.less → layout/_layouts.less} +1 -3
- package/styles/layout/_layouts.scss +375 -0
- package/styles/layout/_mcontainer.scss +136 -0
- package/styles/layout/_page-tabs.scss +314 -0
- package/styles/{_split-scroll.less → layout/_split-scroll.less} +1 -1
- package/styles/layout/_split-scroll.scss +112 -0
- package/styles/layout/_split-view.scss +126 -0
- package/styles/login-app-use.scss +36 -0
- package/styles/login-app.less +25 -24
- package/styles/mixins/_alert-variant.scss +13 -0
- package/styles/mixins/_animation.scss +25 -0
- package/styles/mixins/_background-variant.scss +34 -0
- package/styles/mixins/_border-radius.scss +18 -0
- package/styles/mixins/_buttons.scss +65 -0
- package/styles/mixins/_c8y-scrollbar.scss +29 -0
- package/styles/mixins/_center-block.scss +7 -0
- package/styles/mixins/_clearfix.scss +22 -0
- package/styles/mixins/_color-mixins.scss +21 -0
- package/styles/mixins/_create-grid.scss +137 -0
- package/styles/mixins/_element-queries.scss +39 -0
- package/styles/mixins/_forms.scss +122 -0
- package/styles/mixins/_gradients.scss +120 -0
- package/styles/mixins/_grid-framework.scss +104 -0
- package/styles/mixins/_grid.scss +126 -0
- package/styles/mixins/_hide-scrollbars.scss +10 -0
- package/styles/mixins/_hide-text.scss +24 -0
- package/styles/mixins/_icon-base.scss +30 -0
- package/styles/mixins/_image.scss +26 -0
- package/styles/mixins/_index.scss +48 -0
- package/styles/mixins/_labels.scss +14 -0
- package/styles/mixins/_list-group.scss +32 -0
- package/styles/mixins/_nav-divider.scss +8 -0
- package/styles/mixins/_nav-vertical-align.scss +9 -0
- package/styles/mixins/_opacity.scss +9 -0
- package/styles/mixins/_pagination.scss +26 -0
- package/styles/mixins/_panels.scss +25 -0
- package/styles/mixins/_progress-bar.scss +12 -0
- package/styles/mixins/_reset-filter.scss +9 -0
- package/styles/mixins/_reset-text.scss +21 -0
- package/styles/mixins/_resize.scss +6 -0
- package/styles/mixins/_responsive-visibility.scss +21 -0
- package/styles/mixins/_shadows-helper.scss +40 -0
- package/styles/mixins/_size.scss +109 -0
- package/styles/mixins/_tab-focus.scss +20 -0
- package/styles/mixins/_table-row.scss +30 -0
- package/styles/mixins/_tag.scss +14 -0
- package/styles/mixins/_text-emphasis.scss +19 -0
- package/styles/mixins/_text-overflow.scss +10 -0
- package/styles/mixins/_vendor-prefixes.scss +149 -0
- package/styles/mixins/vendor-prefixes.less +37 -112
- package/styles/utilities/_borders.less +3 -12
- package/styles/utilities/_borders.scss +137 -0
- package/styles/utilities/_caret.scss +50 -0
- package/styles/utilities/_container-queries.scss +113 -0
- package/styles/utilities/_contextual-colors.less +113 -168
- package/styles/utilities/_contextual-colors.scss +170 -0
- package/styles/utilities/_display.scss +439 -0
- package/styles/utilities/_elevation.scss +41 -0
- package/styles/utilities/_flex-containers.scss +219 -0
- package/styles/utilities/_flex-items.scss +152 -0
- package/styles/utilities/_icon-utils.less +5 -5
- package/styles/utilities/_icon-utils.scss +94 -0
- package/styles/utilities/_margins-paddings.scss +190 -0
- package/styles/utilities/_overflows.scss +69 -0
- package/styles/utilities/_position.less +3 -6
- package/styles/utilities/_position.scss +143 -0
- package/styles/utilities/_quickfloats.less +1 -8
- package/styles/utilities/_quickfloats.scss +36 -0
- package/styles/utilities/_separators.scss +71 -0
- package/styles/utilities/_shadows.scss +7 -0
- package/styles/utilities/_sizing.scss +122 -0
- package/styles/utilities/_text-utils.scss +691 -0
- package/styles/utilities.less +1 -4
- package/styles/vendor/ace-editor/_ace-editor.scss +26 -0
- package/styles/vendor/angular/_loading-bar.scss +33 -0
- package/styles/{_ui-sortable.less → vendor/angular/_ui-sortable.less} +1 -1
- package/styles/vendor/angular/_ui-sortable.scss +70 -0
- package/styles/{_uib-accordion.less → vendor/angular/_uib-accordion.less} +1 -1
- package/styles/vendor/angular/_uib-accordion.scss +59 -0
- package/styles/vendor/angular/angular-ui-select/_select.scss +154 -0
- package/styles/vendor/angular/angular-ui-select/select.less +161 -0
- package/styles/vendor/cdk/_cdk-drag.scss +71 -0
- package/styles/{_cdk-tree.less → vendor/cdk/_cdk-tree.less} +1 -1
- package/styles/vendor/cdk/_cdk-tree.scss +66 -0
- package/styles/vendor/cdk/_cdk-virtual-scroll-window.scss +18 -0
- package/styles/{_bs-datepicker.less → vendor/datepicker/_bs-datepicker.less} +1 -7
- package/styles/vendor/datepicker/_bs-datepicker.scss +628 -0
- package/styles/{_datepicker.less → vendor/datepicker/_uib-datepicker.less} +1 -6
- package/styles/vendor/datepicker/_uib-datepicker.scss +173 -0
- package/styles/{_c8y-map-internal.less → vendor/leaflet/_c8y-map-internal.less} +4 -4
- package/styles/vendor/leaflet/_c8y-map-internal.scss +316 -0
- package/styles/{_leaflet.less → vendor/leaflet/_leaflet.less} +4 -3
- package/styles/vendor/leaflet/_leaflet.scss +803 -0
- package/styles/{_colorpicker.less → vendor/other/_colorpicker.less} +2 -2
- package/styles/vendor/other/_colorpicker.scss +40 -0
- package/styles/{_c8y-selectize.less → vendor/selectize/_c8y-selectize.less} +1 -10
- package/styles/vendor/selectize/_c8y-selectize.scss +403 -0
- package/sync-scss-to-less.sh +75 -0
- package/variables/README.md +485 -0
- package/variables/_alert-vars.scss +36 -0
- package/variables/_badge-vars.less +0 -1
- package/variables/_badge-vars.scss +24 -0
- package/variables/_brand-vars.scss +97 -0
- package/variables/_breadcrumbs-vars.scss +13 -0
- package/variables/_buttons-vars.less +17 -0
- package/variables/_buttons-vars.scss +107 -0
- package/variables/_c8y-action-bar-vars.less +1 -1
- package/variables/_c8y-action-bar-vars.scss +15 -0
- package/variables/_c8y-icon-vars.scss +199 -0
- package/variables/_code-vars.less +2 -3
- package/variables/_code-vars.scss +18 -0
- package/variables/_color-defaults.less +91 -0
- package/variables/_color-defaults.scss +91 -0
- package/variables/_color-vars.less +96 -39
- package/variables/_color-vars.scss +303 -0
- package/variables/_components-vars.scss +22 -0
- package/variables/_dlt-c8y-icons-vars.scss +1825 -0
- package/variables/_forms-vars.less +1 -1
- package/variables/_forms-vars.scss +98 -0
- package/variables/_label-vars.less +5 -2
- package/variables/_label-vars.scss +37 -0
- package/variables/_layout-vars.less +29 -13
- package/variables/_layout-vars.scss +110 -0
- package/variables/_map-vars.scss +12 -0
- package/variables/_modal-vars.less +2 -2
- package/variables/_modal-vars.scss +13 -0
- package/variables/_navbar-vars.less +15 -7
- package/variables/_navbar-vars.scss +72 -0
- package/variables/_navigator.scss +8 -0
- package/variables/_page-sticky-header.scss +4 -0
- package/variables/_pagination-vars.scss +30 -0
- package/variables/_panel-vars.less +2 -2
- package/variables/_panel-vars.scss +40 -0
- package/variables/_popover-vars.scss +23 -0
- package/variables/_progress-bars-vars.less +5 -5
- package/variables/_progress-bars-vars.scss +19 -0
- package/variables/_scaffolding.scss +33 -0
- package/variables/_selectize-vars.scss +37 -0
- package/variables/_tables-vars.scss +7 -0
- package/variables/_tag-vars.less +1 -1
- package/variables/_tag-vars.scss +38 -0
- package/variables/_thumbnail-vars.scss +12 -0
- package/variables/_tooltip-vars.scss +16 -0
- package/variables/_typography-vars.scss +45 -0
- package/variables/dashboard-themes/_branded-dashboard.less +0 -11
- package/variables/dashboard-themes/_branded-dashboard.scss +296 -0
- package/variables/dashboard-themes/_dark-dashboard.less +7 -0
- package/variables/dashboard-themes/_dark-dashboard.scss +40 -0
- package/variables/dashboard-themes/_transparent-dashboard.scss +17 -0
- package/variables/dashboard-themes/_white-dashboard.scss +44 -0
- package/variables/index.less +4 -0
- package/variables/index.scss +146 -0
- package/variables/login-vars.scss +48 -0
- package/variables/shadows.scss +15 -0
- package/variables/tokens/c8y-design-tokens-dark.less +2 -13
- package/variables/tokens/c8y-design-tokens-dark.scss +332 -0
- package/variables/tokens/c8y-design-tokens.less +4 -15
- package/variables/tokens/c8y-design-tokens.scss +590 -0
- package/styles/_animate.less +0 -1133
- package/styles/_baseline-grid.less +0 -22
- package/styles/_browser-mock.less +0 -59
- package/styles/_bulk-operation-details-tab.less +0 -10
- package/styles/_c8y-message-banner.less +0 -37
- package/styles/_dlt-c8y-icons-stroke.less +0 -32797
- package/styles/_markdown-content.less +0 -54
- package/styles/_marker-icons.less +0 -19
- /package/styles/{_component-animations.less → animations/_component-animations.less} +0 -0
- /package/styles/{_realtime-animation-list.less → animations/_realtime-animation-list.less} +0 -0
- /package/styles/{_spinner-snake.less → animations/_spinner-snake.less} +0 -0
- /package/styles/{_normalize.less → base/_normalize.less} +0 -0
- /package/styles/{_print.less → base/_print.less} +0 -0
- /package/styles/{_scaffolding.less → base/_scaffolding.less} +0 -0
- /package/styles/{_c8y-empty-state.less → components/data-display-and-visualization/lists/_c8y-empty-state.less} +0 -0
- /package/styles/{_cards-layout.less → components/data-display-and-visualization/lists/_cards-layout.less} +0 -0
- /package/styles/{_smart-rules-template-list.less → components/data-display-and-visualization/lists/_smart-rules-template-list.less} +0 -0
- /package/styles/{_data-grid.less → components/data-display-and-visualization/tables/_data-grid.less} +0 -0
- /package/styles/{_tables.less → components/data-display-and-visualization/tables/_tables.less} +0 -0
- /package/styles/{_asset-property-list.less → components/data-input/assets/_asset-property-list.less} +0 -0
- /package/styles/{_c8y-asset-notes.less → components/data-input/assets/_c8y-asset-notes.less} +0 -0
- /package/styles/{_c8y-asset-selector-miller.less → components/data-input/assets/_c8y-asset-selector-miller.less} +0 -0
- /package/styles/{_c8y-child-assets-selector.less → components/data-input/assets/_c8y-child-assets-selector.less} +0 -0
- /package/styles/{_c8y-action-bar.less → components/navigation-and-layout/action-bars/_c8y-action-bar.less} +0 -0
- /package/styles/{_card-flip.less → components/navigation-and-layout/cards/_card-flip.less} +0 -0
- /package/styles/{_card-grid.less → components/navigation-and-layout/cards/_card-grid.less} +0 -0
- /package/styles/{_c8y-nav-stacked.less → components/navigation-and-layout/navigation/_c8y-nav-stacked.less} +0 -0
- /package/styles/{_main-header.less → components/navigation-and-layout/navigation/_main-header.less} +0 -0
- /package/styles/{_navigator.less → components/navigation-and-layout/navigation/_navigator.less} +0 -0
- /package/styles/{_navs.less → components/navigation-and-layout/navigation/_navs.less} +0 -0
- /package/styles/{_pagination.less → components/navigation-and-layout/navigation/_pagination.less} +0 -0
- /package/styles/{_boxed-label.less → components/specialized/_boxed-label.less} +0 -0
- /package/styles/{_c8y-cookie-banner.less → components/specialized/_c8y-cookie-banner.less} +0 -0
- /package/styles/{_c8y-datapoint-pill.less → components/specialized/_c8y-datapoint-pill.less} +0 -0
- /package/styles/{_c8y-pulse.less → components/specialized/_c8y-pulse.less} +0 -0
- /package/styles/{_c8y-range.less → components/specialized/_c8y-range.less} +0 -0
- /package/styles/{_c8y-scrollbar.less → components/specialized/_c8y-scrollbar.less} +0 -0
- /package/styles/{_c8y-smart-rest-tab.less → components/specialized/_c8y-smart-rest-tab.less} +0 -0
- /package/styles/{_code.less → components/specialized/_code.less} +0 -0
- /package/styles/{_device-software-tab.less → components/specialized/_device-software-tab.less} +0 -0
- /package/styles/{_dtm-icon-selector.less → components/specialized/_dtm-icon-selector.less} +0 -0
- /package/styles/{_search-header.less → components/specialized/_search-header.less} +0 -0
- /package/styles/{_static-assets-file-picker.less → components/specialized/_static-assets-file-picker.less} +0 -0
- /package/styles/{_statusContainer.less → components/specialized/_statusContainer.less} +0 -0
- /package/styles/{_button-groups.less → core/buttons/_button-groups.less} +0 -0
- /package/styles/{_badges.less → core/feedback/_badges.less} +0 -0
- /package/styles/{_close.less → core/feedback/_close.less} +0 -0
- /package/styles/{_progress-bars.less → core/feedback/_progress-bars.less} +0 -0
- /package/styles/{_tooltip.less → core/feedback/_tooltip.less} +0 -0
- /package/styles/{_popovers.less → core/overlays/_popovers.less} +0 -0
- /package/styles/{_availability-pie.less → dashboard/_availability-pie.less} +0 -0
- /package/styles/{_dashboard-widgets.less → dashboard/_dashboard-widgets.less} +0 -0
- /package/styles/{_info-gauge.less → dashboard/_info-gauge.less} +0 -0
- /package/styles/{_quick-links-widget.less → dashboard/_quick-links-widget.less} +0 -0
- /package/styles/{_c8y-glyphs.less → icons/_c8y-glyphs.less} +0 -0
- /package/styles/{_bottom-drawer.less → layout/_bottom-drawer.less} +0 -0
- /package/styles/{_c8y-help-drawer.less → layout/_c8y-help-drawer.less} +0 -0
- /package/styles/{_c8y-right-drawer.less → layout/_c8y-right-drawer.less} +0 -0
- /package/styles/{_c8y-top-drawer.less → layout/_c8y-top-drawer.less} +0 -0
- /package/styles/{_group-info.less → layout/_group-info.less} +0 -0
- /package/styles/{_mcontainer.less → layout/_mcontainer.less} +0 -0
- /package/styles/{_page-tabs.less → layout/_page-tabs.less} +0 -0
- /package/styles/{_split-view.less → layout/_split-view.less} +0 -0
- /package/styles/{_ace-editor.less → vendor/ace-editor/_ace-editor.less} +0 -0
- /package/styles/{_loading-bar.less → vendor/angular/_loading-bar.less} +0 -0
- /package/styles/{_cdk-drag.less → vendor/cdk/_cdk-drag.less} +0 -0
- /package/styles/{_cdk-virtual-scroll-window.less → vendor/cdk/_cdk-virtual-scroll-window.less} +0 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
# Variables Directory
|
|
2
|
+
|
|
3
|
+
> **⚠️ Important Notice**: This directory contains LESS variable files for **backward compatibility only**. LESS variable overriding is deprecated and no longer functional.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## For End Users: LESS Variable Deprecation
|
|
8
|
+
|
|
9
|
+
### ⚠️ What Changed
|
|
10
|
+
|
|
11
|
+
**LESS variable overriding is deprecated and no longer applies branding changes.**
|
|
12
|
+
|
|
13
|
+
If you were previously customizing your application with LESS variable overrides like this:
|
|
14
|
+
|
|
15
|
+
```less
|
|
16
|
+
// ❌ DEPRECATED - No longer works
|
|
17
|
+
@import '~@c8y/style/extend.less';
|
|
18
|
+
|
|
19
|
+
@brand-primary: #custom-color;
|
|
20
|
+
@navigator-bg-color: #custom-nav;
|
|
21
|
+
@header-text-color: #custom-header;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**This approach no longer applies your customizations** because `@c8y/style` now uses SCSS, not LESS, as the primary build system (January 2026).
|
|
25
|
+
|
|
26
|
+
### ✅ Migration Options
|
|
27
|
+
|
|
28
|
+
#### Option 1: CSS Custom Properties (Recommended)
|
|
29
|
+
|
|
30
|
+
Use CSS custom properties for theming at build time or runtime:
|
|
31
|
+
|
|
32
|
+
```css
|
|
33
|
+
/* Override in your custom CSS/SCSS */
|
|
34
|
+
:root {
|
|
35
|
+
--brand-primary: #1976d2;
|
|
36
|
+
--navigator-bg-color: #1565c0;
|
|
37
|
+
--main-header-background-default: #ffffff;
|
|
38
|
+
--main-header-text-color-default: #333333;
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Runtime configuration** using application options:
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import { ApplicationOptions } from '@c8y/ngx-components';
|
|
46
|
+
|
|
47
|
+
export const options: ApplicationOptions = {
|
|
48
|
+
brandingCssVars: {
|
|
49
|
+
'brand-primary': '#1976d2',
|
|
50
|
+
'navigator-bg-color': '#1565c0',
|
|
51
|
+
'main-header-background-default': '#ffffff'
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### Option 2: Branding Editor (No Code Required)
|
|
57
|
+
|
|
58
|
+
Use the **Branding Editor** in the Cumulocity Administration app to configure:
|
|
59
|
+
- Brand colors
|
|
60
|
+
- Logos
|
|
61
|
+
- Fonts
|
|
62
|
+
- Custom CSS
|
|
63
|
+
|
|
64
|
+
This provides a UI for customization without any code changes.
|
|
65
|
+
|
|
66
|
+
#### Option 3: SCSS Variables (Advanced)
|
|
67
|
+
|
|
68
|
+
For build-time customization with SCSS:
|
|
69
|
+
|
|
70
|
+
```scss
|
|
71
|
+
// Import with variable configuration
|
|
72
|
+
@use '~@c8y/style/variables' with (
|
|
73
|
+
$use-relative-paths: true
|
|
74
|
+
);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
> **Note:** SCSS uses a modern module system where variables are scoped and must be explicitly configured using `@use ... with` syntax.
|
|
78
|
+
|
|
79
|
+
### Variable Mapping Reference
|
|
80
|
+
|
|
81
|
+
| LESS (Deprecated) | CSS Custom Property | Description |
|
|
82
|
+
|-------------------|---------------------|-------------|
|
|
83
|
+
| `@brand-primary` | `--brand-primary` | Primary brand color |
|
|
84
|
+
| `@brand-complementary` | *deprecated* | Use `--brand-dark` or `--brand-light` instead |
|
|
85
|
+
| `@brand-dark` | `--brand-dark` | Dark brand color |
|
|
86
|
+
| `@navigator-bg-color` | `--navigator-bg-color` | Navigator background |
|
|
87
|
+
| `@navigator-text-color` | `--navigator-text-color` | Navigator text color |
|
|
88
|
+
| `@headerColor` | `--main-header-background-default` | Header background |
|
|
89
|
+
| `@header-text-color` | `--main-header-text-color-default` | Header text color |
|
|
90
|
+
| `@font-family-base` | `--font-family-base` | Base font family |
|
|
91
|
+
|
|
92
|
+
### Documentation & Resources
|
|
93
|
+
|
|
94
|
+
- [Branding Tokens](../../codex/content/design-system/design-tokens/branding-tokens.md) - Complete list of CSS custom properties
|
|
95
|
+
- [Application Styles](../../codex/content/common-tasks/application-styles.md) - Styling guide
|
|
96
|
+
- [c8y-design-tokens](https://github.com/Cumulocity-IoT/c8y-design-tokens) - Design tokens repository
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## For Contributors: Technical Guide
|
|
101
|
+
|
|
102
|
+
This directory contains SCSS and LESS variable files. SCSS files use the SASS module system (`@use` and `@forward`), while LESS files are maintained for backward compatibility.
|
|
103
|
+
|
|
104
|
+
### Table of Contents
|
|
105
|
+
|
|
106
|
+
- [Directory Structure](#directory-structure)
|
|
107
|
+
- [Usage](#usage)
|
|
108
|
+
- [Variable Organization](#variable-organization)
|
|
109
|
+
- [Migration from LESS](#migration-from-less)
|
|
110
|
+
- [Adding New Variables](#adding-new-variables)
|
|
111
|
+
- [SCSS Module System](#scss-module-system)
|
|
112
|
+
- [Troubleshooting](#troubleshooting)
|
|
113
|
+
|
|
114
|
+
## Directory Structure
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
variables/
|
|
118
|
+
├── index.scss # SCSS main entry point - import this file
|
|
119
|
+
├── index.less # LESS main entry point (maintained for releases)
|
|
120
|
+
├── README.md # This file
|
|
121
|
+
│
|
|
122
|
+
├── dashboard-themes/ # Dashboard theme overrides
|
|
123
|
+
│ ├── _branded-dashboard.{scss,less}
|
|
124
|
+
│ ├── _dark-dashboard.{scss,less}
|
|
125
|
+
│ ├── _transparent-dashboard.{scss,less}
|
|
126
|
+
│ └── _white-dashboard.{scss,less}
|
|
127
|
+
│
|
|
128
|
+
├── tokens/ # Design tokens from design system
|
|
129
|
+
│ ├── c8y-design-tokens.scss
|
|
130
|
+
│ └── c8y-design-tokens-dark.scss
|
|
131
|
+
│
|
|
132
|
+
└── [variable files] # 34 paired SCSS/LESS files
|
|
133
|
+
├── _color-defaults.{scss,less}
|
|
134
|
+
├── _color-vars.{scss,less}
|
|
135
|
+
├── _components-vars.{scss,less}
|
|
136
|
+
├── _forms-vars.{scss,less}
|
|
137
|
+
├── _buttons-vars.{scss,less}
|
|
138
|
+
├── _alert-vars.{scss,less}
|
|
139
|
+
├── _badge-vars.{scss,less}
|
|
140
|
+
├── _typography-vars.{scss,less}
|
|
141
|
+
├── _layout-vars.{scss,less}
|
|
142
|
+
└── ... (and 25 more paired files)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Note:** Each variable file exists in both `.scss` and `.less` formats. SCSS files are used for builds; LESS files are maintained for backward compatibility.
|
|
146
|
+
|
|
147
|
+
## Usage
|
|
148
|
+
|
|
149
|
+
### Basic Import
|
|
150
|
+
|
|
151
|
+
To use variables in your SCSS file, import the main index:
|
|
152
|
+
|
|
153
|
+
```scss
|
|
154
|
+
@use "../../variables/index" as *;
|
|
155
|
+
|
|
156
|
+
.my-component {
|
|
157
|
+
color: $brand-primary;
|
|
158
|
+
padding: $size-16;
|
|
159
|
+
background: $component-background-default;
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### With Namespace (Recommended for Clarity)
|
|
164
|
+
|
|
165
|
+
```scss
|
|
166
|
+
@use "../../variables/index" as vars;
|
|
167
|
+
|
|
168
|
+
.my-component {
|
|
169
|
+
color: vars.$brand-primary;
|
|
170
|
+
padding: vars.$size-16;
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Configuring Variables
|
|
175
|
+
|
|
176
|
+
Some variable modules accept configuration:
|
|
177
|
+
|
|
178
|
+
```scss
|
|
179
|
+
@use "../../variables/index" with (
|
|
180
|
+
$use-relative-paths: true
|
|
181
|
+
);
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Variable Organization
|
|
185
|
+
|
|
186
|
+
### Current Structure
|
|
187
|
+
|
|
188
|
+
Variables are organized in flat files with paired SCSS/LESS implementations:
|
|
189
|
+
|
|
190
|
+
- **_color-defaults.scss** - Default color palette
|
|
191
|
+
- **_color-vars.scss** - Semantic color mappings
|
|
192
|
+
- **_components-vars.scss** - Component-level variables
|
|
193
|
+
- **_forms-vars.scss** - Form-specific variables
|
|
194
|
+
- **_buttons-vars.scss** - Button-specific variables
|
|
195
|
+
- **_typography-vars.scss** - Font and text variables
|
|
196
|
+
- **_layout-vars.scss** - Grid and layout variables
|
|
197
|
+
- **_scaffolding.scss** - Base scaffolding with asset paths
|
|
198
|
+
|
|
199
|
+
### Variable Naming Convention
|
|
200
|
+
|
|
201
|
+
Variables follow the pattern:
|
|
202
|
+
|
|
203
|
+
```scss
|
|
204
|
+
// Component-based
|
|
205
|
+
$component-{property}-{variant}
|
|
206
|
+
$component-background-default
|
|
207
|
+
$component-border-width
|
|
208
|
+
$component-padding-base-horizontal
|
|
209
|
+
|
|
210
|
+
// Semantic colors
|
|
211
|
+
$brand-primary
|
|
212
|
+
$brand-dark
|
|
213
|
+
$brand-light
|
|
214
|
+
|
|
215
|
+
// Layout/spacing (size system)
|
|
216
|
+
$size-base // 8px base unit
|
|
217
|
+
$size-8 // 8px
|
|
218
|
+
$size-16 // 16px
|
|
219
|
+
$size-24 // 24px
|
|
220
|
+
$size-32 // 32px
|
|
221
|
+
|
|
222
|
+
// Typography
|
|
223
|
+
$font-size-base
|
|
224
|
+
$font-size-small
|
|
225
|
+
$line-height-base
|
|
226
|
+
$font-family-base
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Migration from LESS
|
|
230
|
+
|
|
231
|
+
### Key Differences
|
|
232
|
+
|
|
233
|
+
| LESS | SCSS | Notes |
|
|
234
|
+
|------|------|-------|
|
|
235
|
+
| `@import` | `@use` / `@forward` | Module system with namespacing |
|
|
236
|
+
| `@variable` | `$variable` | Variable prefix changed |
|
|
237
|
+
| `.mixin()` | `@include mixin()` | Mixin calls |
|
|
238
|
+
| Lazy loading | Explicit dependencies | Must declare all imports |
|
|
239
|
+
| Guards `when` | `@if` / `@else` | Conditional logic changed |
|
|
240
|
+
|
|
241
|
+
### Variable Resolution
|
|
242
|
+
|
|
243
|
+
The `index.scss` file handles duplicate variables using `@forward hide`:
|
|
244
|
+
|
|
245
|
+
```scss
|
|
246
|
+
// Hide duplicate variables from color-vars
|
|
247
|
+
@forward '_color-vars' hide
|
|
248
|
+
$component-background-default,
|
|
249
|
+
$component-border-width,
|
|
250
|
+
$component-border-style;
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
This prevents conflicts when multiple modules define the same variable.
|
|
254
|
+
|
|
255
|
+
### Removed Features
|
|
256
|
+
|
|
257
|
+
**LESS Guards** - SCSS doesn't support LESS-style conditional guards (`& when`). Code that depended on guards has been:
|
|
258
|
+
- Removed if it was legacy/deprecated behavior
|
|
259
|
+
- Converted to always-on if it's standard behavior
|
|
260
|
+
- Documented with instructions for custom override if needed
|
|
261
|
+
|
|
262
|
+
Example from `_navigator.scss`:
|
|
263
|
+
```scss
|
|
264
|
+
// LESS (conditional):
|
|
265
|
+
& when not(@appBranding='') {
|
|
266
|
+
.c8y-icon { display: none !important; }
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// SCSS (removed - document override path):
|
|
270
|
+
// To hide icons, add to your custom CSS:
|
|
271
|
+
// .navigator .title .c8y-icon { display: none !important; }
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## LESS/SCSS Dual Maintenance
|
|
275
|
+
|
|
276
|
+
### Overview
|
|
277
|
+
|
|
278
|
+
Both LESS and SCSS files are maintained in this directory:
|
|
279
|
+
|
|
280
|
+
- **SCSS files**: Used for builds (primary)
|
|
281
|
+
- **LESS files**: Maintained for backward compatibility
|
|
282
|
+
- **Both must be kept in sync** to ensure consistency
|
|
283
|
+
|
|
284
|
+
### When Working with Variables
|
|
285
|
+
|
|
286
|
+
**Important**: When modifying variables, you must update both SCSS and LESS files:
|
|
287
|
+
|
|
288
|
+
1. **Make changes in SCSS file** (primary)
|
|
289
|
+
|
|
290
|
+
```scss
|
|
291
|
+
// _buttons-vars.scss
|
|
292
|
+
$btn-primary-bg: $brand-primary !default;
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
2. **Sync to LESS file** (convert syntax)
|
|
296
|
+
|
|
297
|
+
```less
|
|
298
|
+
// _buttons-vars.less
|
|
299
|
+
@btn-primary-bg: @brand-primary;
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
3. **Commit both files together**
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
git add packages/style/variables/_buttons-vars.{scss,less}
|
|
306
|
+
git commit -m "Update button variables"
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Syntax Quick Reference
|
|
310
|
+
|
|
311
|
+
| SCSS | LESS | Notes |
|
|
312
|
+
| ---- | ---- | ----- |
|
|
313
|
+
| `$variable` | `@variable` | Variable prefix |
|
|
314
|
+
| `@include mixin()` | `.mixin()` | Mixin calls |
|
|
315
|
+
| `@mixin name()` | `.name()` | Mixin definitions |
|
|
316
|
+
| `@use 'file'` | `@import 'file'` | Imports |
|
|
317
|
+
| `#{$var}` | `@{var}` | Interpolation |
|
|
318
|
+
|
|
319
|
+
### Pre-commit Hook
|
|
320
|
+
|
|
321
|
+
A pre-commit hook verifies LESS/SCSS sync:
|
|
322
|
+
|
|
323
|
+
- Detects SCSS changes
|
|
324
|
+
- Checks if corresponding LESS file is updated
|
|
325
|
+
- Compiles both preprocessors
|
|
326
|
+
- Blocks commit if compilation fails
|
|
327
|
+
|
|
328
|
+
## Adding New Variables
|
|
329
|
+
|
|
330
|
+
### 1. Choose the Right File
|
|
331
|
+
|
|
332
|
+
- **Component-specific** → Add to `_components-vars.scss`
|
|
333
|
+
- **Form-related** → Add to `_forms-vars.scss`
|
|
334
|
+
- **Color** → Add to `_color-vars.scss`
|
|
335
|
+
- **Layout/spacing** → Add to `_layout-vars.scss`
|
|
336
|
+
- **New category** → Create new file (see step 2)
|
|
337
|
+
|
|
338
|
+
### 2. Create a New Variable File
|
|
339
|
+
|
|
340
|
+
If creating a new category:
|
|
341
|
+
|
|
342
|
+
```scss
|
|
343
|
+
// variables/_my-new-vars.scss
|
|
344
|
+
@use 'color-defaults' as *; // Import dependencies if needed
|
|
345
|
+
|
|
346
|
+
$my-variable: value !default;
|
|
347
|
+
$my-other-variable: $gray-60 !default;
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### 3. Register in index.scss
|
|
351
|
+
|
|
352
|
+
Add your new file to `variables/index.scss`:
|
|
353
|
+
|
|
354
|
+
```scss
|
|
355
|
+
// Import and make available
|
|
356
|
+
@use '_my-new-vars' as *;
|
|
357
|
+
@forward '_my-new-vars';
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Position matters! Place it after dependencies but before files that use it.
|
|
361
|
+
|
|
362
|
+
### 4. Use !default Flag
|
|
363
|
+
|
|
364
|
+
Always use `!default` for variables that should be customizable:
|
|
365
|
+
|
|
366
|
+
```scss
|
|
367
|
+
$my-variable: #007bff !default; // ✅ Can be overridden
|
|
368
|
+
$my-constant: #007bff; // ❌ Cannot be overridden
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## SCSS Module System
|
|
372
|
+
|
|
373
|
+
### @use vs @import
|
|
374
|
+
|
|
375
|
+
**Never use `@import`** - it's deprecated and will be removed in Dart Sass 3.0.
|
|
376
|
+
|
|
377
|
+
```scss
|
|
378
|
+
// ❌ Old way (deprecated)
|
|
379
|
+
@import 'variables/index';
|
|
380
|
+
|
|
381
|
+
// ✅ New way
|
|
382
|
+
@use 'variables/index' as *;
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### @use Rules
|
|
386
|
+
|
|
387
|
+
1. **Must be at the top** - No @use statements after regular CSS
|
|
388
|
+
2. **Each file once** - Can't @use the same file twice in one file
|
|
389
|
+
3. **Namespaced by default** - Use `as *` to add to global scope
|
|
390
|
+
4. **Private members** - Variables starting with `-` or `_` are private
|
|
391
|
+
|
|
392
|
+
### @forward for Re-exporting
|
|
393
|
+
|
|
394
|
+
The `index.scss` uses `@forward` to re-export all variables:
|
|
395
|
+
|
|
396
|
+
```scss
|
|
397
|
+
@use '_color-vars' as *; // Make available in this file
|
|
398
|
+
@forward '_color-vars'; // Re-export for consumers
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
This allows a single import point: `@use 'variables/index' as *;`
|
|
402
|
+
|
|
403
|
+
### Configuration with 'with'
|
|
404
|
+
|
|
405
|
+
Pass configuration to modules:
|
|
406
|
+
|
|
407
|
+
```scss
|
|
408
|
+
@use '_scaffolding' with (
|
|
409
|
+
$use-relative-paths: true
|
|
410
|
+
);
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Note: Can't use both `with` and `as *` together. Use separately:
|
|
414
|
+
|
|
415
|
+
```scss
|
|
416
|
+
@use '_scaffolding' with ($use-relative-paths: true); // Configure
|
|
417
|
+
@forward '_scaffolding' hide $use-relative-paths; // Re-export but hide config var
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
## Troubleshooting
|
|
421
|
+
|
|
422
|
+
### "Undefined variable"
|
|
423
|
+
|
|
424
|
+
**Cause**: File doesn't import variables index.
|
|
425
|
+
|
|
426
|
+
**Solution**: Add to top of file:
|
|
427
|
+
```scss
|
|
428
|
+
@use "../../variables/index" as *;
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### "This variable is available from multiple global modules"
|
|
432
|
+
|
|
433
|
+
**Cause**: Multiple modules define the same variable without hiding duplicates.
|
|
434
|
+
|
|
435
|
+
**Solution**: Use `@forward hide` in `index.scss`:
|
|
436
|
+
```scss
|
|
437
|
+
@forward '_color-vars' hide $duplicate-variable;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### "expected ';'"
|
|
441
|
+
|
|
442
|
+
**Cause**: Can't use `@use ... with (...) as *;`
|
|
443
|
+
|
|
444
|
+
**Solution**: Remove `as *`:
|
|
445
|
+
```scss
|
|
446
|
+
// ❌ Wrong
|
|
447
|
+
@use '_module' with ($var: value) as *;
|
|
448
|
+
|
|
449
|
+
// ✅ Right
|
|
450
|
+
@use '_module' with ($var: value);
|
|
451
|
+
@forward '_module';
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Circular dependency
|
|
455
|
+
|
|
456
|
+
**Cause**: File A imports B, B imports A.
|
|
457
|
+
|
|
458
|
+
**Solution**: Restructure to use a third file for shared variables, or use `@forward` instead of `@use` where appropriate.
|
|
459
|
+
|
|
460
|
+
### "The target selector was not found"
|
|
461
|
+
|
|
462
|
+
**Cause**: `@extend` references a class that doesn't exist or isn't loaded yet.
|
|
463
|
+
|
|
464
|
+
**Solution**: Add `!optional` flag:
|
|
465
|
+
```scss
|
|
466
|
+
@extend .some-class !optional;
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
## Best Practices
|
|
470
|
+
|
|
471
|
+
1. **Always import variables/index** - Don't import individual variable files
|
|
472
|
+
2. **Use semantic variable names** - Prefer `$component-background-default` over `$white`
|
|
473
|
+
3. **Document custom variables** - Add comments explaining usage
|
|
474
|
+
4. **Use !default for customization** - Allow variables to be overridden
|
|
475
|
+
5. **Avoid duplication** - Reuse existing variables when possible
|
|
476
|
+
6. **Namespace complex imports** - Use `as vars` for clarity in large files
|
|
477
|
+
7. **Keep variables DRY** - Define once, reference everywhere
|
|
478
|
+
|
|
479
|
+
## Related Documentation
|
|
480
|
+
|
|
481
|
+
- [SASS Module System](https://sass-lang.com/documentation/at-rules/use)
|
|
482
|
+
- [SASS @forward](https://sass-lang.com/documentation/at-rules/forward)
|
|
483
|
+
- [SASS Variables](https://sass-lang.com/documentation/variables)
|
|
484
|
+
- [Branding Tokens](../../codex/content/design-system/design-tokens/branding-tokens.md) - CSS custom properties
|
|
485
|
+
- [Application Styles](../../codex/content/common-tasks/application-styles.md) - Styling guide
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@use 'dlt-c8y-icons-vars';
|
|
2
|
+
|
|
3
|
+
$alert-background: var(--c8y-alert-background-default);
|
|
4
|
+
$alert-color: var(--c8y-alert-color-default);
|
|
5
|
+
$alert-icon-font-family: var(--c8y-alert-status-symbol-font-family);
|
|
6
|
+
$alert-max-width: var(--c8y-alert-max-width);
|
|
7
|
+
$alert-border-width: var(--c8y-alert-border-width);
|
|
8
|
+
$alert-border-style: var(--c8y-alert-border-style);
|
|
9
|
+
$alert-status-symbol-size: var(--c8y-alert-status-symbol-size);
|
|
10
|
+
$alert-padding: var(--c8y-alert-padding);
|
|
11
|
+
|
|
12
|
+
$alert-success-icon: var(--c8y-alert-success-icon, dlt-c8y-icons-vars.$dlt-c8y-icon-check-circle);
|
|
13
|
+
$alert-success-bg: $alert-background;
|
|
14
|
+
$alert-success-text: $alert-color;
|
|
15
|
+
$alert-success-border: var(--palette-status-success, var(--c8y-alert-status-success));
|
|
16
|
+
|
|
17
|
+
$alert-info-icon: var(--c8y-alert-info-icon, dlt-c8y-icons-vars.$dlt-c8y-icon-info-circle);
|
|
18
|
+
$alert-info-bg: $alert-background;
|
|
19
|
+
$alert-info-text: $alert-color;
|
|
20
|
+
$alert-info-border: var(--palette-status-info, var(--c8y-alert-status-info));
|
|
21
|
+
|
|
22
|
+
$alert-system-icon: var(--c8y-alert-system-icon, dlt-c8y-icons-vars.$dlt-c8y-icon-wrench);
|
|
23
|
+
$alert-system-bg: $alert-background;
|
|
24
|
+
$alert-system-text: $alert-color;
|
|
25
|
+
$alert-system-border: var(--c8y-alert-status-system);
|
|
26
|
+
|
|
27
|
+
$alert-warning-icon: var(--c8y-alert-warning-icon, dlt-c8y-icons-vars.$dlt-c8y-icon-warning);
|
|
28
|
+
$alert-warning-bg: $alert-background;
|
|
29
|
+
$alert-warning-text: $alert-color;
|
|
30
|
+
$alert-warning-border: var(--palette-status-warning, var(--c8y-alert-status-warning));
|
|
31
|
+
$alert-warning-dark: var(--palette-status-warning-dark, var(--c8y-alert-status-warning-dark, #4B3B06));
|
|
32
|
+
|
|
33
|
+
$alert-danger-icon: var(--c8y-alert-danger-icon, dlt-c8y-icons-vars.$dlt-c8y-icon-exclamation-circle);
|
|
34
|
+
$alert-danger-bg: $alert-background;
|
|
35
|
+
$alert-danger-text: $alert-color;
|
|
36
|
+
$alert-danger-border: var(--palette-status-danger, var(--c8y-alert-status-danger));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@use 'color-vars';
|
|
2
|
+
|
|
3
|
+
$badge-background-default: color-vars.$gray-80;
|
|
4
|
+
$badge-background-success: color-vars.$status-success-light;
|
|
5
|
+
$badge-background-warning: color-vars.$status-warning-light;
|
|
6
|
+
$badge-background-danger: color-vars.$status-danger-light;
|
|
7
|
+
$badge-background-info: color-vars.$status-info-light;
|
|
8
|
+
$badge-background-system: color-vars.$status-system;
|
|
9
|
+
|
|
10
|
+
$badge-color-default: color-vars.$text-color;
|
|
11
|
+
$badge-color-success: color-vars.$status-success-dark;
|
|
12
|
+
$badge-color-warning: color-vars.$status-warning-dark;
|
|
13
|
+
$badge-color-danger: color-vars.$status-danger-dark;
|
|
14
|
+
$badge-color-info: color-vars.$status-info-dark;
|
|
15
|
+
$badge-color-system: color-vars.$palette-high;
|
|
16
|
+
|
|
17
|
+
$badge-border-radius: var(--c8y-badge-border-radius);
|
|
18
|
+
$badge-padding: var(--c8y-badge-padding);
|
|
19
|
+
|
|
20
|
+
$badge-font-size: var(--c8y-badge-font-size);
|
|
21
|
+
$badge-font-weight: var(--c8y-badge-font-weight);
|
|
22
|
+
$badge-line-height: var(--c8y-badge-line-height);
|
|
23
|
+
|
|
24
|
+
$badge-color-focus: color-vars.$palette-high;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
@use 'typography-vars' as *;
|
|
2
|
+
@use 'tokens/c8y-design-tokens-dark' as dark;
|
|
3
|
+
|
|
4
|
+
/* CUMULOCITY-IOT BRAND CSS VARS */
|
|
5
|
+
|
|
6
|
+
$use-relative-paths: false !default;
|
|
7
|
+
|
|
8
|
+
$image-path: '';
|
|
9
|
+
|
|
10
|
+
/* DEPRECATED - Must be defined early for fallback usage */
|
|
11
|
+
$appLogo: deprecated; // replaces the app icon with an image.
|
|
12
|
+
|
|
13
|
+
//falbacks
|
|
14
|
+
$brand-logo-img-fallback: if($use-relative-paths, '../img/logo-platform.svg', 'img/logo-platform.svg'); // Logo for login and loading
|
|
15
|
+
$brand-logo-img-fallback-dark: if($use-relative-paths, '../img/logo-platform-white.svg', 'img/logo-platform-white.svg'); // Logo for login and loading
|
|
16
|
+
|
|
17
|
+
$brand-logo-height-fallback: 20%;
|
|
18
|
+
|
|
19
|
+
$navigator-platform-logo-fallback:if($appLogo=deprecated, if($use-relative-paths, '../img/logo-platform.svg', 'img/logo-platform.svg'), $appLogo); // legacy support
|
|
20
|
+
$navigator-platform-logo-dark-fallback: if($appLogo=deprecated, if($use-relative-paths, '../img/logo-platform-white.svg', 'img/logo-platform-white.svg'), $appLogo); // legacy support
|
|
21
|
+
|
|
22
|
+
$navigator-platform-logo-height-fallback: 32px;
|
|
23
|
+
$appLogo-height: deprecated;
|
|
24
|
+
$appBranding: ''; //When different from empty, hides app name in navigator
|
|
25
|
+
$powered-by: ''; // when set adds an image below login form. ex.: trackerando
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// Login
|
|
29
|
+
$brand-logo-img: var(--brand-logo-img, var(--c8y-brand-logo-img));
|
|
30
|
+
$brand-logo-height: var(--brand-logo-img-height, var(--c8y-brand-logo-img-height));
|
|
31
|
+
|
|
32
|
+
$navigator-platform-logo: var(--navigator-platform-logo, var(--c8y-navigator-platform-logo));
|
|
33
|
+
|
|
34
|
+
$navigator-platform-logo-height: var(--navigator-platform-logo-height, var(--c8y-navigator-platform-logo-height));
|
|
35
|
+
|
|
36
|
+
// Typography
|
|
37
|
+
$font-family-headings-css-var: var(--c8y-font-family-headings, $headings-font-family);
|
|
38
|
+
$font-family-base-css-var: var(--c8y-font-family-base, $font-family-base);
|
|
39
|
+
|
|
40
|
+
// Backward compatibility tokens
|
|
41
|
+
|
|
42
|
+
:root, .c8y-light-theme{
|
|
43
|
+
--c8y-brand-logo-img: url('#{$brand-logo-img-fallback}');
|
|
44
|
+
--c8y-brand-logo-height: #{$brand-logo-height-fallback};
|
|
45
|
+
|
|
46
|
+
--c8y-navigator-platform-logo: url('#{$navigator-platform-logo-fallback}');
|
|
47
|
+
--c8y-navigator-platform-logo-height: #{$navigator-platform-logo-height-fallback};
|
|
48
|
+
|
|
49
|
+
--c8y-header-color: var(--c8y-main-header-background-default);
|
|
50
|
+
--c8y-header-text-color: var(--c8y-main-header-text-color-default);
|
|
51
|
+
--c8y-header-hover-color: var(--c8y-main-header-text-color-hover);
|
|
52
|
+
|
|
53
|
+
--c8y-navigator-bg-color: var(--c8y-navigator-background-default);
|
|
54
|
+
--c8y-navigator-header-bg: var(--c8y-navigator-header-background);
|
|
55
|
+
|
|
56
|
+
--c8y-navigator-title-color: var(--c8y-navigator-header-color);
|
|
57
|
+
|
|
58
|
+
--c8y-navigator-active-bg: var(--c8y-navigator-background-selected);
|
|
59
|
+
|
|
60
|
+
--c8y-navigator-text-color: var(--c8y-navigator-text-color-default);
|
|
61
|
+
--c8y-navigator-color-active: var(--c8y-navigator-text-color-selected);
|
|
62
|
+
|
|
63
|
+
--c8y-navigator-border-active: var(--c8y-navigator-border-selected);
|
|
64
|
+
|
|
65
|
+
--c8y-right-drawer-link-color: var(--c8y-right-drawer-link-color-default);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.c8y-dark-theme{
|
|
69
|
+
--c8y-brand-logo-img: url('#{$image-path}#{$brand-logo-img-fallback-dark}');
|
|
70
|
+
--c8y-navigator-platform-logo: url('#{$navigator-platform-logo-dark-fallback}');
|
|
71
|
+
|
|
72
|
+
--c8y-header-color: var(--c8y-main-header-background-default);
|
|
73
|
+
--c8y-header-text-color: var(--c8y-main-header-text-color-default);
|
|
74
|
+
--c8y-header-hover-color: var(--c8y-main-header-text-color-hover);
|
|
75
|
+
|
|
76
|
+
--c8y-navigator-bg-color: var(--c8y-navigator-background-default);
|
|
77
|
+
--c8y-navigator-header-bg: var(--c8y-navigator-header-background);
|
|
78
|
+
|
|
79
|
+
--c8y-navigator-title-color: var(--c8y-navigator-header-color);
|
|
80
|
+
|
|
81
|
+
--c8y-navigator-active-bg: var(--c8y-navigator-background-selected);
|
|
82
|
+
|
|
83
|
+
--c8y-navigator-text-color: var(--c8y-navigator-text-color-default);
|
|
84
|
+
--c8y-navigator-color-active: var(--c8y-navigator-text-color-selected);
|
|
85
|
+
|
|
86
|
+
--c8y-navigator-border-active: var(--c8y-navigator-border-selected);
|
|
87
|
+
|
|
88
|
+
--c8y-right-drawer-link-color: var(--c8y-right-drawer-link-color-default);
|
|
89
|
+
|
|
90
|
+
--body-background-color: var(--c8y-body-background-color);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.c8y-system-theme {
|
|
94
|
+
@media (prefers-color-scheme: dark){
|
|
95
|
+
@include dark.c8y-dark-theme();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@use 'color-vars' as *;
|
|
2
|
+
@use 'layout-vars' as *;
|
|
3
|
+
@use 'typography-vars' as *;
|
|
4
|
+
|
|
5
|
+
$breadcrumb-background-default: $headerColor;
|
|
6
|
+
$breadcrumb-text-color: $header-text-color;
|
|
7
|
+
$breadcrumb-text-color-hover: $header-text-color-hover;
|
|
8
|
+
$breadcrumb-text-color-active: $header-text-color-hover;
|
|
9
|
+
|
|
10
|
+
$breadcrumb-padding-vertical: $size-base;
|
|
11
|
+
$breadcrumb-padding-horizontal: $size-16;
|
|
12
|
+
|
|
13
|
+
$breadcrumbs-font-size: $font-size-small;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@btn-font-family: var(--c8y-btn-font-family);
|
|
1
2
|
@btn-font-weight: var(--c8y-btn-font-weight);
|
|
2
3
|
@btn-font-size-base: var(--c8y-btn-font-size-base);
|
|
3
4
|
@btn-font-size-large: var(--c8y-btn-font-size-large);
|
|
@@ -85,4 +86,20 @@
|
|
|
85
86
|
@btn-accent-background-active: var(--c8y-btn-accent-background-active);
|
|
86
87
|
@btn-accent-border-color-active: var(--c8y-btn-accent-border-color-active);
|
|
87
88
|
|
|
89
|
+
@btn-danger-color-default: var(--c8y-btn-danger-color-default);
|
|
90
|
+
@btn-danger-background-default: var(--c8y-btn-danger-background-default);
|
|
91
|
+
@btn-danger-border-color-default: var(--c8y-btn-danger-border-color-default);
|
|
92
|
+
|
|
93
|
+
@btn-danger-color-hover: var(--c8y-btn-danger-color-hover);
|
|
94
|
+
@btn-danger-background-hover: var(--c8y-btn-danger-background-hover);
|
|
95
|
+
@btn-danger-border-color-hover: var(--c8y-btn-danger-border-color-hover);
|
|
96
|
+
|
|
97
|
+
@btn-danger-color-focus: var(--c8y-btn-danger-color-focus);
|
|
98
|
+
@btn-danger-background-focus: var(--c8y-btn-danger-background-focus);
|
|
99
|
+
@btn-danger-border-color-focus: var(--c8y-btn-danger-border-color-focus);
|
|
100
|
+
|
|
101
|
+
@btn-danger-color-active: var(--c8y-btn-danger-color-active);
|
|
102
|
+
@btn-danger-background-active: var(--c8y-btn-danger-background-active);
|
|
103
|
+
@btn-danger-border-color-active: var(--c8y-btn-danger-border-color-active);
|
|
104
|
+
|
|
88
105
|
@btn-link-disabled-color: @component-color-disabled;
|