@c8y/style 1023.14.76 → 1023.14.92
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.less +1 -1
- package/helper-scripts/README-variable-imports.md +155 -0
- package/helper-scripts/README.md +104 -0
- package/helper-scripts/convert-scss-to-less.sh +502 -0
- package/helper-scripts/convert-stroke-icons-to-less.js +115 -0
- package/helper-scripts/remove-redundant-variable-imports.sh +80 -0
- package/helper-scripts/scss-to-less-skip +20 -0
- package/{sync-scss-to-less.sh → helper-scripts/sync-scss-to-less.sh} +2 -2
- package/helper-scripts/test-compile.sh +71 -0
- package/markdown-files/MANUAL-SYNC-FILES.md +56 -0
- package/package.json +2 -2
- package/styles/_login-app.less +34 -0
- package/styles/_login-app.scss +2 -2
- package/styles/_mixins.less +47 -0
- package/styles/_utilities.less +21 -0
- package/styles/_utilities.scss +1 -0
- package/styles/animations/_animate.less +18 -13
- package/styles/animations/_component-animations.less +18 -16
- package/styles/animations/_realtime-animation-list.less +11 -1
- package/styles/animations/_spinner-snake.less +17 -2
- package/styles/animations/_spinner.less +24 -6
- package/styles/base/_normalize.less +14 -0
- package/styles/base/_print.less +25 -12
- package/styles/base/_scaffolding.less +24 -28
- package/styles/base/_type.less +41 -19
- package/styles/components/_markdown-content.less +4 -1
- package/styles/components/_smartrules.less +14 -8
- package/styles/components/_smartrules.scss +6 -2
- package/styles/components/application-and-system/_c8y-cookie-banner.less +36 -0
- package/styles/components/{specialized → application-and-system}/_c8y-login.less +20 -6
- package/styles/components/data-display-and-visualization/_boxed-label.less +45 -0
- package/styles/components/data-display-and-visualization/_boxed-label.scss +46 -0
- package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.less +76 -24
- package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.scss +39 -1
- package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.less +29 -13
- package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.less +33 -6
- package/styles/components/data-display-and-visualization/_range-display.less +25 -16
- package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.less +19 -5
- package/styles/components/{specialized → data-display-and-visualization}/_status.less +16 -2
- package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.less +16 -2
- package/styles/components/data-display-and-visualization/_timelines-chart.less +2 -0
- package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +10 -0
- package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.less +26 -12
- package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +88 -42
- package/styles/components/data-display-and-visualization/lists/_cards-layout.less +38 -16
- package/styles/components/data-display-and-visualization/lists/_list-group.less +46 -28
- package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.less +12 -1
- package/styles/components/data-display-and-visualization/lists/{timeline-list.less → _timeline-list.less} +46 -24
- package/styles/components/data-display-and-visualization/tables/_data-grid.less +45 -25
- package/styles/components/data-display-and-visualization/tables/_resizable-grid.less +18 -1
- package/styles/components/data-display-and-visualization/tables/_tables.less +25 -9
- package/styles/components/data-input/_c8y-ai-chat.less +1 -0
- package/styles/components/{specialized → data-input}/_c8y-countdown-interval.less +15 -13
- package/styles/components/{specialized → data-input}/_c8y-range.less +22 -6
- package/styles/components/{specialized → data-input}/_dtm-icon-selector.less +17 -2
- package/styles/components/{specialized → data-input}/_dtm-icon-selector.scss +1 -2
- package/styles/components/{specialized → data-input}/_measurements-time-control.less +34 -6
- package/styles/components/{specialized → data-input}/_measurements-time-control.scss +14 -2
- package/styles/components/{specialized → data-input}/_search-header.less +22 -6
- package/styles/components/data-input/_static-assets-file-picker.less +22 -0
- package/styles/components/data-input/assets/_asset-property-list.less +38 -23
- package/styles/components/data-input/assets/_asset-table.less +21 -3
- package/styles/components/data-input/assets/_c8y-asset-notes.less +13 -1
- package/styles/components/data-input/assets/_c8y-asset-selector-miller.less +27 -8
- package/styles/components/data-input/assets/_c8y-asset-selector.less +32 -15
- package/styles/components/data-input/assets/_c8y-child-assets-selector.less +90 -9
- package/styles/components/{specialized → forms}/_c8y-schema-form.less +44 -17
- package/styles/components/{specialized → forms}/_c8y-schema-form.scss +15 -3
- package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.less +21 -5
- package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.less +24 -7
- package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.less +21 -6
- package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.less +15 -1
- package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.less +45 -28
- package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.less +14 -0
- package/styles/components/navigation-and-layout/action-bars/_app-switcher.less +27 -5
- package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.less +49 -21
- package/styles/components/navigation-and-layout/cards/_card-dashboard.less +25 -4
- package/styles/components/navigation-and-layout/cards/_card-flip.less +41 -14
- package/styles/components/navigation-and-layout/cards/_card-grid.less +20 -4
- package/styles/components/navigation-and-layout/cards/_card.less +90 -75
- package/styles/components/navigation-and-layout/cards/_panels.less +38 -20
- package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +22 -49
- package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.less +26 -14
- package/styles/components/navigation-and-layout/navigation/_main-header.less +39 -13
- package/styles/components/navigation-and-layout/navigation/_main-header.scss +1 -1
- package/styles/components/navigation-and-layout/navigation/_navbar.less +22 -25
- package/styles/components/navigation-and-layout/navigation/_navbar.scss +7 -7
- package/styles/components/navigation-and-layout/navigation/_navigator.less +71 -69
- package/styles/components/navigation-and-layout/navigation/_navs.less +13 -0
- package/styles/components/navigation-and-layout/navigation/_pagination.less +24 -5
- package/styles/components/navigation-and-layout/navigation/{steps-navbar.less → _steps-navbar.less} +7 -6
- package/styles/components/navigation-and-layout/navigation/_tabs.less +18 -14
- package/styles/components/navigation-and-layout/navigation/_tabs.scss +2 -2
- package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.less +14 -0
- package/styles/components/{specialized → status-feedback-and-notifications}/_code.less +18 -2
- package/styles/core/buttons/_button-groups.less +29 -79
- package/styles/core/buttons/_buttons.less +229 -198
- package/styles/core/buttons/_buttons.scss +6 -10
- package/styles/core/feedback/_alerts.less +52 -41
- package/styles/core/feedback/_badges.less +29 -17
- package/styles/core/feedback/_close.less +24 -7
- package/styles/core/feedback/_labels.less +21 -8
- package/styles/core/feedback/_progress-bars.less +24 -7
- package/styles/core/feedback/_tag.less +23 -6
- package/styles/core/feedback/_tooltip.less +44 -20
- package/styles/core/forms/_c8y-switch.less +39 -19
- package/styles/core/forms/_c8y-switch.scss +37 -29
- package/styles/core/forms/_file-picker.less +79 -61
- package/styles/core/forms/_forms.less +130 -133
- package/styles/core/forms/_input-groups.less +110 -59
- package/styles/core/forms/_input-groups.scss +21 -3
- package/styles/core/overlays/_c8y-dashboard-modal.less +25 -29
- package/styles/core/overlays/_c8y-wizard.less +38 -15
- package/styles/core/overlays/_dropdowns.less +86 -63
- package/styles/core/overlays/_modals.less +58 -40
- package/styles/core/overlays/_popovers.less +25 -9
- package/styles/dashboard/_availability-pie.less +3 -0
- package/styles/dashboard/_c8y-dashboard-style.less +61 -34
- package/styles/dashboard/_c8y-gauges.less +20 -4
- package/styles/dashboard/_dashboard-widgets.less +17 -4
- package/styles/dashboard/_info-gauge.less +20 -5
- package/styles/dashboard/_quick-links-widget.less +13 -3
- package/styles/{welcome-widget.less → dashboard/_welcome-widget.less} +21 -4
- package/styles/dashboard/{welcome.less → _welcome.less} +54 -45
- package/styles/icons/_c8y-glyphs.less +12 -1
- package/styles/icons/_c8y-glyphs.scss +2 -1
- package/styles/icons/_c8y-icons.less +214 -199
- package/styles/icons/_dlt-c8y-icons-stroke.less +7238 -1834
- package/styles/icons/_dlt-c8y-icons.less +14 -0
- package/styles/icons/_marker-icons.less +10 -0
- package/styles/index.less +160 -134
- package/styles/index.scss +53 -29
- package/styles/layout/_bottom-drawer.less +21 -7
- package/styles/layout/_c8y-help-drawer.less +30 -9
- package/styles/layout/_c8y-right-drawer.less +34 -19
- package/styles/layout/_c8y-top-drawer.less +43 -28
- package/styles/layout/_grid.less +18 -4
- package/styles/layout/_group-info.less +14 -2
- package/styles/layout/_layouts.less +48 -30
- package/styles/layout/_mcontainer.less +26 -12
- package/styles/layout/_page-tabs.less +115 -23
- package/styles/layout/_split-scroll.less +16 -4
- package/styles/layout/_split-view.less +34 -2
- package/styles/login-app-use.scss +2 -2
- package/styles/login-app.less +4 -4
- package/styles/mixins/_buttons.scss +1 -0
- package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
- package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
- package/styles/mixins/{forms.less → _forms.less} +1 -1
- package/styles/mixins/_gradients.less +117 -0
- package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
- package/styles/mixins/_icon-base.less +29 -0
- package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
- package/styles/mixins/_nav-vertical-align.scss +5 -2
- package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
- package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
- package/styles/mixins/_shadows-helper.scss +1 -4
- package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
- package/styles/mixins/_vendor-prefixes.scss +1 -17
- package/styles/utilities/_borders.less +21 -11
- package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
- package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
- package/styles/utilities/_caret.less +18 -4
- package/styles/utilities/_container-queries.less +11 -3
- package/styles/utilities/_contextual-colors.less +48 -119
- package/styles/utilities/_display.less +26 -41
- package/styles/utilities/_elevation.less +17 -7
- package/styles/utilities/_flex-containers.less +10 -0
- package/styles/utilities/_flex-items.less +11 -0
- package/styles/utilities/_icon-utils.less +15 -3
- package/styles/utilities/_margins-paddings.less +23 -4
- package/styles/utilities/_overflows.less +10 -0
- package/styles/utilities/_position.less +11 -0
- package/styles/utilities/_quickfloats.less +20 -1
- package/styles/utilities/_separators.less +11 -0
- package/styles/utilities/_shadows.less +5 -49
- package/styles/{utilities.less → utilities/_sizing.less} +13 -21
- package/styles/utilities/_text-utils.less +35 -24
- package/styles/vendor/ace-editor/_ace-editor.less +1 -0
- package/styles/vendor/angular/_loading-bar.less +1 -0
- package/styles/vendor/angular/_ui-sortable.less +2 -1
- package/styles/vendor/angular/_uib-accordion.less +1 -0
- package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
- package/styles/vendor/cdk/_cdk-drag.less +3 -0
- package/styles/vendor/cdk/_cdk-tree.less +6 -3
- package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
- package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
- package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
- package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
- package/styles/vendor/leaflet/_leaflet.less +4 -1
- package/styles/vendor/other/_colorpicker.less +3 -2
- package/styles/vendor/selectize/_c8y-selectize.less +33 -10
- package/variables/_color-defaults.less +29 -10
- package/variables/_color-defaults.scss +29 -10
- package/variables/_color-vars.less +37 -89
- package/variables/_color-vars.scss +19 -77
- package/variables/{login-vars.less → _login-vars.less} +3 -5
- package/variables/index.less +3 -3
- package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
- package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
- package/styles/components/specialized/_boxed-label.less +0 -21
- package/styles/components/specialized/_boxed-label.scss +0 -36
- package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
- package/styles/components/specialized/_static-assets-file-picker.less +0 -8
- package/styles/dashboard/welcome-widget.less +0 -50
- package/styles/mixins/gradients.less +0 -142
- package/styles/mixins.less +0 -45
- package/styles/steps-navbar.less +0 -97
- package/styles/timeline-list.less +0 -210
- package/styles/vendor/angular/angular-ui-select/select.less +0 -161
- package/styles/welcome.less +0 -128
- /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
- /package/styles/components/{specialized → application-and-system}/_c8y-login.scss +0 -0
- /package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.scss +0 -0
- /package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.scss +0 -0
- /package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.scss +0 -0
- /package/styles/components/{specialized → data-display-and-visualization}/_status.scss +0 -0
- /package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.scss +0 -0
- /package/styles/components/{specialized → data-input}/_c8y-countdown-interval.scss +0 -0
- /package/styles/components/{specialized → data-input}/_c8y-range.scss +0 -0
- /package/styles/components/{specialized → data-input}/_search-header.scss +0 -0
- /package/styles/components/{specialized → data-input}/_static-assets-file-picker.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.scss +0 -0
- /package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.scss +0 -0
- /package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.scss +0 -0
- /package/styles/components/{specialized → status-feedback-and-notifications}/_code.scss +0 -0
- /package/styles/mixins/{alert-variant.less → _alert-variant.less} +0 -0
- /package/styles/mixins/{animation.less → _animation.less} +0 -0
- /package/styles/mixins/{background-variant.less → _background-variant.less} +0 -0
- /package/styles/mixins/{border-radius.less → _border-radius.less} +0 -0
- /package/styles/mixins/{buttons.less → _buttons.less} +0 -0
- /package/styles/mixins/{c8y-scrollbar.less → _c8y-scrollbar.less} +0 -0
- /package/styles/mixins/{center-block.less → _center-block.less} +0 -0
- /package/styles/mixins/{clearfix.less → _clearfix.less} +0 -0
- /package/styles/mixins/{create-grid.less → _create-grid.less} +0 -0
- /package/styles/mixins/{grid.less → _grid.less} +0 -0
- /package/styles/mixins/{hide-scrollbars.less → _hide-scrollbars.less} +0 -0
- /package/styles/mixins/{hide-text.less → _hide-text.less} +0 -0
- /package/styles/mixins/{image.less → _image.less} +0 -0
- /package/styles/mixins/{labels.less → _labels.less} +0 -0
- /package/styles/mixins/{list-group.less → _list-group.less} +0 -0
- /package/styles/mixins/{nav-divider.less → _nav-divider.less} +0 -0
- /package/styles/mixins/{opacity.less → _opacity.less} +0 -0
- /package/styles/mixins/{pagination.less → _pagination.less} +0 -0
- /package/styles/mixins/{panels.less → _panels.less} +0 -0
- /package/styles/mixins/{reset-filter.less → _reset-filter.less} +0 -0
- /package/styles/mixins/{reset-text.less → _reset-text.less} +0 -0
- /package/styles/mixins/{resize.less → _resize.less} +0 -0
- /package/styles/mixins/{responsive-visibility.less → _responsive-visibility.less} +0 -0
- /package/styles/mixins/{size.less → _size.less} +0 -0
- /package/styles/mixins/{tab-focus.less → _tab-focus.less} +0 -0
- /package/styles/mixins/{table-row.less → _table-row.less} +0 -0
- /package/styles/mixins/{tag.less → _tag.less} +0 -0
- /package/styles/mixins/{text-emphasis.less → _text-emphasis.less} +0 -0
- /package/styles/mixins/{text-overflow.less → _text-overflow.less} +0 -0
- /package/variables/{login-vars.scss → _login-vars.scss} +0 -0
- /package/variables/{shadows.less → _shadows.less} +0 -0
- /package/variables/{shadows.scss → _shadows.scss} +0 -0
- /package/variables/tokens/{c8y-design-tokens-dark.scss → _c8y-design-tokens-dark.scss} +0 -0
- /package/variables/tokens/{c8y-design-tokens.scss → _c8y-design-tokens.scss} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Files to skip during automatic SCSS to LESS conversion
|
|
2
|
+
# These files require manual synchronization due to complex syntax patterns
|
|
3
|
+
|
|
4
|
+
# Complex mixin calls with calc()/var() - converter cannot reliably handle parameter separators
|
|
5
|
+
styles/core/buttons/_buttons.scss
|
|
6
|
+
|
|
7
|
+
# Transform mixins that output CSS functions - converter confuses CSS function commas with mixin parameter separators
|
|
8
|
+
styles/mixins/_vendor-prefixes.scss
|
|
9
|
+
|
|
10
|
+
# LESS guard syntax - converter incorrectly changes LESS guards to @if
|
|
11
|
+
styles/components/application-and-system/_c8y-login.scss
|
|
12
|
+
|
|
13
|
+
# math.div() - converter incorrectly changes LESS division to SCSS math.div()
|
|
14
|
+
styles/components/data-input/_c8y-range.scss
|
|
15
|
+
|
|
16
|
+
# Non-existent mixin - converter incorrectly re-adds removed mixin calls
|
|
17
|
+
styles/components/data-input/_dtm-icon-selector.scss
|
|
18
|
+
|
|
19
|
+
# Complex @if/@else conditional logic - converter has basic guard support but may need manual review
|
|
20
|
+
styles/mixins/_shadows-helper.scss
|
|
@@ -62,8 +62,8 @@ if [ $NEEDS_SYNC -eq 1 ]; then
|
|
|
62
62
|
echo "==================================="
|
|
63
63
|
echo ""
|
|
64
64
|
echo "Options:"
|
|
65
|
-
echo "1. Semi-automated: ./convert-scss-to-less.sh --all"
|
|
66
|
-
echo "2. Single file: ./convert-scss-to-less.sh path/to/file.scss"
|
|
65
|
+
echo "1. Semi-automated: ./helper-scripts/convert-scss-to-less.sh --all"
|
|
66
|
+
echo "2. Single file: ./helper-scripts/convert-scss-to-less.sh path/to/file.scss"
|
|
67
67
|
echo "3. Manually sync SCSS → LESS"
|
|
68
68
|
echo "4. Ask Claude to sync for you"
|
|
69
69
|
echo ""
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Quick LESS/SCSS compilation test
|
|
4
|
+
# Tests that LESS and SCSS files compile without errors and produce similar output
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
cd "$(dirname "$0")"
|
|
9
|
+
|
|
10
|
+
echo "==========================================="
|
|
11
|
+
echo "Quick LESS/SCSS Compilation Test"
|
|
12
|
+
echo "==========================================="
|
|
13
|
+
echo ""
|
|
14
|
+
|
|
15
|
+
# Colors
|
|
16
|
+
RED='\033[0;31m'
|
|
17
|
+
GREEN='\033[0;32m'
|
|
18
|
+
YELLOW='\033[1;33m'
|
|
19
|
+
NC='\033[0m' # No Color
|
|
20
|
+
|
|
21
|
+
# Test LESS compilation
|
|
22
|
+
printf "${YELLOW}Testing LESS compilation...${NC}\n"
|
|
23
|
+
npx lessc main.less /tmp/test-main-less.css 2>/tmp/lessc-errors.log
|
|
24
|
+
if [ $? -eq 0 ]; then
|
|
25
|
+
LESS_SIZE=$(wc -c < /tmp/test-main-less.css | tr -d ' ')
|
|
26
|
+
LESS_SIZE_MB=$(echo "scale=1; $LESS_SIZE / 1024 / 1024" | bc)
|
|
27
|
+
printf "${GREEN}✓ LESS compilation successful${NC} (${LESS_SIZE_MB}M)\n"
|
|
28
|
+
else
|
|
29
|
+
printf "${RED}✗ LESS compilation failed${NC}\n"
|
|
30
|
+
cat /tmp/lessc-errors.log
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Test SCSS compilation
|
|
35
|
+
printf "${YELLOW}Testing SCSS compilation...${NC}\n"
|
|
36
|
+
npx sass main.scss /tmp/test-main-scss.css --no-source-map 2>/tmp/sass-errors.log
|
|
37
|
+
if [ $? -eq 0 ]; then
|
|
38
|
+
SCSS_SIZE=$(wc -c < /tmp/test-main-scss.css | tr -d ' ')
|
|
39
|
+
SCSS_SIZE_MB=$(echo "scale=1; $SCSS_SIZE / 1024 / 1024" | bc)
|
|
40
|
+
printf "${GREEN}✓ SCSS compilation successful${NC} (${SCSS_SIZE_MB}M)\n"
|
|
41
|
+
else
|
|
42
|
+
printf "${RED}✗ SCSS compilation failed${NC}\n"
|
|
43
|
+
cat /tmp/sass-errors.log
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# Compare sizes (should be within 5%)
|
|
48
|
+
SIZE_DIFF=$(echo "scale=2; ($LESS_SIZE - $SCSS_SIZE) / $SCSS_SIZE * 100" | bc)
|
|
49
|
+
SIZE_DIFF_ABS=$(echo "$SIZE_DIFF" | tr -d '-')
|
|
50
|
+
|
|
51
|
+
echo ""
|
|
52
|
+
echo "==========================================="
|
|
53
|
+
printf "${YELLOW}Comparison:${NC}\n"
|
|
54
|
+
echo " LESS: ${LESS_SIZE_MB}M"
|
|
55
|
+
echo " SCSS: ${SCSS_SIZE_MB}M"
|
|
56
|
+
echo " Difference: ${SIZE_DIFF}%"
|
|
57
|
+
echo " Difference absolute: ${SIZE_DIFF_ABS}%"
|
|
58
|
+
|
|
59
|
+
if [ "$(echo "$SIZE_DIFF_ABS < 5" | bc -l)" -eq 1 ]; then
|
|
60
|
+
printf "${GREEN}✓ Output sizes match (within 5%%)${NC}\n"
|
|
61
|
+
else
|
|
62
|
+
printf "${RED}✗ Warning: Output sizes differ by more than 5%%${NC}\n"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
echo "==========================================="
|
|
66
|
+
echo ""
|
|
67
|
+
echo "Detailed warnings/deprecations:"
|
|
68
|
+
echo ""
|
|
69
|
+
cat /tmp/lessc-errors.log | head -20
|
|
70
|
+
echo ""
|
|
71
|
+
echo "Full logs: /tmp/lessc-errors.log, /tmp/sass-errors.log"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Files Requiring Manual SCSS/LESS Synchronization
|
|
2
|
+
|
|
3
|
+
This document lists files that cannot be automatically converted from SCSS to LESS due to complex syntax patterns.
|
|
4
|
+
|
|
5
|
+
## Files List
|
|
6
|
+
|
|
7
|
+
### `styles/core/buttons/_buttons.scss` / `_buttons.less`
|
|
8
|
+
|
|
9
|
+
**Reason**: Complex mixin calls with multiple parameters including CSS functions
|
|
10
|
+
|
|
11
|
+
**Issues**:
|
|
12
|
+
- `.button-size()` mixin calls have 6 parameters
|
|
13
|
+
- Contains `calc()` expressions as parameters
|
|
14
|
+
- Converter cannot reliably distinguish between:
|
|
15
|
+
- Parameter separator commas (need → semicolons for LESS)
|
|
16
|
+
- calc() function commas (must remain commas)
|
|
17
|
+
- Selector grouping commas (must remain commas)
|
|
18
|
+
|
|
19
|
+
**Manual sync required for**:
|
|
20
|
+
- Lines ~60: `.button-size(@btn-padding-vertical; calc(@btn-padding-horizontal * 2); ...)`
|
|
21
|
+
- Lines ~794-797: `.btn-lg { .button-size(...) }`
|
|
22
|
+
- Lines ~800-802: `.btn-sm { .button-size(...) }`
|
|
23
|
+
- Lines ~805-807: `.btn-xs { .button-size(...) }`
|
|
24
|
+
|
|
25
|
+
**Correct LESS syntax**:
|
|
26
|
+
```less
|
|
27
|
+
.button-size(@param1; @param2; @param3; @param4; @param5; @param6);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Common mistakes**:
|
|
31
|
+
```less
|
|
32
|
+
// WRONG - mixed separators
|
|
33
|
+
.button-size(@param1, @param2; @param3, @param4; @param5; @param6);
|
|
34
|
+
|
|
35
|
+
// WRONG - all commas
|
|
36
|
+
.button-size(@param1, @param2, @param3, @param4, @param5, @param6);
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## How to Maintain These Files
|
|
40
|
+
|
|
41
|
+
1. **Edit SCSS first**: Make changes to the `.scss` version
|
|
42
|
+
2. **Manually sync to LESS**: Copy changes to `.less` version, converting:
|
|
43
|
+
- `$variable` → `@variable`
|
|
44
|
+
- `@include mixin()` → `.mixin()`
|
|
45
|
+
- `@mixin name()` → `.name()`
|
|
46
|
+
- Mixin params: commas → semicolons
|
|
47
|
+
- Keep calc/var/rgba commas as-is
|
|
48
|
+
3. **Test compilation**: Run `npm test --workspace=@c8y/style` to verify both compile
|
|
49
|
+
|
|
50
|
+
## Future Improvements
|
|
51
|
+
|
|
52
|
+
To make these files auto-convertible:
|
|
53
|
+
1. Simplify mixin calls - put all parameters on one line
|
|
54
|
+
2. Extract calc() to variables before passing to mixins
|
|
55
|
+
3. Reduce number of mixin parameters
|
|
56
|
+
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c8y/style",
|
|
3
|
-
"version": "1023.14.
|
|
3
|
+
"version": "1023.14.92",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Cumulocity GmbH",
|
|
6
6
|
"description": "Styles for Cumulocity IoT applications",
|
|
7
7
|
"main": "main.less",
|
|
8
8
|
"scripts": {
|
|
9
|
-
"test": "sh ./
|
|
9
|
+
"test": "sh ./helper-scripts/test-compile.sh"
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
|
12
12
|
"Cumulocity",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@import '_mixins.less';
|
|
2
|
+
@import 'base/_normalize';
|
|
3
|
+
@import 'base/_print';
|
|
4
|
+
|
|
5
|
+
// TRANSITIONS & ANIMATION
|
|
6
|
+
@import 'animations/_component-animations';
|
|
7
|
+
@import 'animations/_animate';
|
|
8
|
+
|
|
9
|
+
// CORE CSS
|
|
10
|
+
@import 'base/_scaffolding';
|
|
11
|
+
@import 'core/feedback/_alerts';
|
|
12
|
+
@import 'core/feedback/_badges';
|
|
13
|
+
@import 'core/buttons/_buttons';
|
|
14
|
+
@import 'core/feedback/_close';
|
|
15
|
+
@import 'core/buttons/_button-groups';
|
|
16
|
+
@import 'components/status-feedback-and-notifications/_code';
|
|
17
|
+
@import 'core/feedback/_tag';
|
|
18
|
+
@import 'core/forms/_forms';
|
|
19
|
+
@import 'core/forms/_c8y-switch';
|
|
20
|
+
@import 'base/_type';
|
|
21
|
+
@import 'layout/_grid';
|
|
22
|
+
|
|
23
|
+
// @import 'layout/_grid';
|
|
24
|
+
|
|
25
|
+
@import 'core/forms/_input-groups';
|
|
26
|
+
@import 'components/application-and-system/_c8y-cookie-banner';
|
|
27
|
+
|
|
28
|
+
@import 'icons/_c8y-glyphs';
|
|
29
|
+
@import 'icons/_c8y-icons';
|
|
30
|
+
@import 'icons/_dlt-c8y-icons';
|
|
31
|
+
// @import 'icons/_dlt-c8y-icons-stroke';
|
|
32
|
+
@import '_utilities.less';
|
|
33
|
+
|
|
34
|
+
@import 'components/navigation-and-layout/action-bars/_app-switcher';
|
package/styles/_login-app.scss
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
@import 'core/buttons/_buttons';
|
|
14
14
|
@import 'core/feedback/_close';
|
|
15
15
|
@import 'core/buttons/_button-groups';
|
|
16
|
-
@import 'components/
|
|
16
|
+
@import 'components/status-feedback-and-notifications/_code';
|
|
17
17
|
@import 'core/feedback/_tag';
|
|
18
18
|
@import 'core/forms/_forms';
|
|
19
19
|
@import 'core/forms/_c8y-switch';
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
// @import 'layout/_grid';
|
|
24
24
|
|
|
25
25
|
@import 'core/forms/_input-groups';
|
|
26
|
-
@import 'components/
|
|
26
|
+
@import 'components/application-and-system/_c8y-cookie-banner';
|
|
27
27
|
|
|
28
28
|
@import 'icons/_c8y-glyphs';
|
|
29
29
|
@import 'icons/_c8y-icons';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Utilities
|
|
2
|
+
@import 'mixins/_icon-base.less';
|
|
3
|
+
@import 'mixins/_hide-text.less';
|
|
4
|
+
@import 'mixins/_opacity.less';
|
|
5
|
+
@import 'mixins/_image.less';
|
|
6
|
+
/* Remove after Codex launch. will be replaced by Tag */
|
|
7
|
+
@import 'mixins/_labels.less';
|
|
8
|
+
@import 'mixins/_tag.less';
|
|
9
|
+
@import 'mixins/_reset-filter.less';
|
|
10
|
+
@import 'mixins/_resize.less';
|
|
11
|
+
@import 'mixins/_responsive-visibility.less';
|
|
12
|
+
@import 'mixins/_size.less';
|
|
13
|
+
@import 'mixins/_tab-focus.less';
|
|
14
|
+
@import 'mixins/_reset-text.less';
|
|
15
|
+
@import 'mixins/_text-emphasis.less';
|
|
16
|
+
@import 'mixins/_text-overflow.less';
|
|
17
|
+
@import 'mixins/_vendor-prefixes.less';
|
|
18
|
+
@import 'mixins/_color-mixins.less';
|
|
19
|
+
@import 'mixins/_animation.less';
|
|
20
|
+
|
|
21
|
+
// Components
|
|
22
|
+
@import 'mixins/_buttons.less';
|
|
23
|
+
@import 'mixins/_alert-variant.less';
|
|
24
|
+
@import 'mixins/_panels.less';
|
|
25
|
+
@import 'mixins/_pagination.less';
|
|
26
|
+
@import 'mixins/_list-group.less';
|
|
27
|
+
@import 'mixins/_nav-divider.less';
|
|
28
|
+
@import 'mixins/_forms.less';
|
|
29
|
+
@import 'mixins/_progress-bar.less';
|
|
30
|
+
@import 'mixins/_table-row.less';
|
|
31
|
+
@import 'mixins/_c8y-scrollbar.less';
|
|
32
|
+
|
|
33
|
+
// Skins
|
|
34
|
+
@import 'mixins/_background-variant.less';
|
|
35
|
+
@import 'mixins/_border-radius.less';
|
|
36
|
+
@import 'mixins/_gradients.less';
|
|
37
|
+
|
|
38
|
+
// Layout
|
|
39
|
+
@import 'mixins/_clearfix.less';
|
|
40
|
+
@import 'mixins/_center-block.less';
|
|
41
|
+
@import 'mixins/_nav-vertical-align.less';
|
|
42
|
+
@import 'mixins/_grid-framework.less';
|
|
43
|
+
@import 'mixins/_grid.less';
|
|
44
|
+
@import 'mixins/_hide-scrollbars.less';
|
|
45
|
+
@import 'mixins/_shadows-helper.less';
|
|
46
|
+
@import 'mixins/_element-queries.less';
|
|
47
|
+
@import 'mixins/_create-grid.less';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Main utility classes
|
|
2
|
+
|
|
3
|
+
@import 'utilities/_caret';
|
|
4
|
+
@import 'utilities/_text-utils';
|
|
5
|
+
@import 'utilities/_contextual-colors';
|
|
6
|
+
@import 'utilities/_display';
|
|
7
|
+
@import 'utilities/_quickfloats';
|
|
8
|
+
@import 'utilities/_margins-paddings';
|
|
9
|
+
// Using the grid - mixins/
|
|
10
|
+
@import 'utilities/_flex-containers';
|
|
11
|
+
@import 'utilities/_flex-items';
|
|
12
|
+
|
|
13
|
+
@import 'utilities/_position';
|
|
14
|
+
@import 'utilities/_overflows';
|
|
15
|
+
@import 'utilities/_separators';
|
|
16
|
+
@import 'utilities/_borders';
|
|
17
|
+
@import 'utilities/_elevation';
|
|
18
|
+
@import 'utilities/_icon-utils';
|
|
19
|
+
@import 'utilities/_container-queries';
|
|
20
|
+
@import 'utilities/_sizing';
|
|
21
|
+
@import 'utilities/_c8y-utils';
|
package/styles/_utilities.scss
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Animate - Third-party animation library (animate.css v3.6.1)
|
|
4
|
+
*
|
|
5
|
+
* Note: This is a third-party library (animate.css by Daniel Eden).
|
|
6
|
+
*
|
|
7
|
+
* Intentionally hardcoded values:
|
|
8
|
+
* - Animation durations (0.35s, 0.5s, 1s, 2s): Animation timing
|
|
9
|
+
* - Transform distances (-30px, -15px, -4px, -10px, 10px, -1px, 1px, ±2000px): Animation movement
|
|
10
|
+
* - Perspective (300px): 3D transform depth
|
|
11
|
+
* - Percentages and unitless values: Animation keyframe positions and opacity
|
|
12
|
+
* - Cubic-bezier values: Custom easing functions
|
|
13
|
+
*/
|
|
14
|
+
|
|
1
15
|
@charset "UTF-8";
|
|
2
|
-
|
|
3
|
-
@ease_cubic: cubic-bezier(0.75, 0.01, 0.32, 0.99);
|
|
16
|
+
|
|
4
17
|
.fadeAnim.ng-enter,
|
|
5
18
|
.fadeAnim.ng-leave {
|
|
6
|
-
transition: 0.5s linear
|
|
19
|
+
transition: 0.5s linear;
|
|
7
20
|
}
|
|
8
21
|
|
|
9
22
|
.fadeAnim.ng-enter,
|
|
@@ -36,8 +49,6 @@
|
|
|
36
49
|
animation-iteration-count: infinite;
|
|
37
50
|
}
|
|
38
51
|
|
|
39
|
-
|
|
40
|
-
|
|
41
52
|
@keyframes bounce {
|
|
42
53
|
from,
|
|
43
54
|
20%,
|
|
@@ -172,16 +183,10 @@
|
|
|
172
183
|
}
|
|
173
184
|
|
|
174
185
|
.vibrate {
|
|
175
|
-
// -webkit-animation: vibrate 2s cubic-bezier(0.36, 0.07, 0.19, 0.97) ;
|
|
176
|
-
// animation: vibrate 2s cubic-bezier(0.36, 0.07, 0.19, 0.97);
|
|
177
|
-
// -webkit-transform: translate3d(0, 0, 0);
|
|
178
|
-
// transform: translate3d(0, 0, 0);
|
|
179
|
-
// -webkit-backface-visibility: hidden;
|
|
180
|
-
// backface-visibility: hidden;
|
|
181
186
|
perspective: 300px;
|
|
182
|
-
transition-duration: 2s;
|
|
183
|
-
transition-timing-function: cubic-bezier(0.36, 0.07, 0.19, 0.97);
|
|
184
187
|
animation-name: vibrate;
|
|
188
|
+
transition-duration: 2s;
|
|
189
|
+
transition-timing-function: cubic-bezier(0.36, 0.07, 0.19, 0.97);
|
|
185
190
|
}
|
|
186
191
|
|
|
187
192
|
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
@import "../mixins/_vendor-prefixes.less";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Component Animations - Fade, collapse, and pulse animations
|
|
5
|
+
*
|
|
6
|
+
* Note: Uses color tokens for background colors.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally hardcoded values:
|
|
9
|
+
* - Animation/transition durations (0.15s, 0.35s, 1s): Animation timing
|
|
10
|
+
* - Percentages in keyframes: Animation keyframe positions
|
|
11
|
+
*/
|
|
12
|
+
|
|
1
13
|
// We don't use the `.opacity()` mixin here since it causes a bug with text
|
|
2
14
|
// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
|
|
3
15
|
.fade {
|
|
@@ -28,28 +40,18 @@
|
|
|
28
40
|
width: 100%;
|
|
29
41
|
height: 0;
|
|
30
42
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
43
|
+
transition-property: height, visibility;
|
|
44
|
+
transition-duration: 0.35s;
|
|
45
|
+
transition-timing-function: ease;
|
|
34
46
|
}
|
|
35
47
|
|
|
36
|
-
.component-pulse {
|
|
37
|
-
-webkit-animation-name: pulseComponent;
|
|
48
|
+
.component-pulse() {
|
|
38
49
|
animation-name: pulseComponent;
|
|
39
50
|
animation-duration: 1s;
|
|
40
51
|
}
|
|
41
52
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
20%,
|
|
45
|
-
50% {
|
|
46
|
-
background-color: @component-realtime-added;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
35%,
|
|
50
|
-
100% {
|
|
51
|
-
background-color: @component-background-default;
|
|
52
|
-
}
|
|
53
|
+
.component-pulse {
|
|
54
|
+
.component-pulse();
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
@keyframes pulseComponent {
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Realtime Animation List - Real-time data update animations
|
|
4
|
+
*
|
|
5
|
+
* Note: Uses color tokens for background transitions.
|
|
6
|
+
*
|
|
7
|
+
* Intentionally hardcoded values:
|
|
8
|
+
* - Transition duration (1s): Animation timing for real-time updates
|
|
9
|
+
*/
|
|
10
|
+
|
|
1
11
|
.realtime-animation-list.ng-enter,
|
|
2
12
|
.realtime-animation-list.ng-change {
|
|
3
13
|
background-color: @component-realtime-added;
|
|
4
|
-
transition: 1s linear
|
|
14
|
+
transition: 1s linear;
|
|
5
15
|
}
|
|
6
16
|
|
|
7
17
|
.realtime-animation-list.ng-enter-active,
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Spinner Snake - Rotating spinner/loader animation
|
|
4
|
+
*
|
|
5
|
+
* Note: Uses color tokens (@component-brand-primary; @body-background-color; @component-background-default).
|
|
6
|
+
* Uses @size-16 for margin.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally hardcoded values:
|
|
9
|
+
* - em-based values (4em, 0.6em, 2.2em, etc.): Relative sizing for scalable spinner
|
|
10
|
+
* - Animation durations (1s, 1.95s) and delays (0.75s): Animation timing
|
|
11
|
+
* - Negative text-indent (-99999em): Text hiding technique
|
|
12
|
+
* - Rotation degrees (0deg, 360deg): Animation angles
|
|
13
|
+
* - Percentages: Keyframe positions
|
|
14
|
+
*/
|
|
15
|
+
|
|
1
16
|
.spinner-snake {
|
|
2
17
|
position: relative;
|
|
3
|
-
margin:
|
|
18
|
+
margin: @size-16 auto;
|
|
4
19
|
width: 4em;
|
|
5
20
|
height: 4em;
|
|
6
21
|
min-width: 4em;
|
|
@@ -31,7 +46,7 @@
|
|
|
31
46
|
|
|
32
47
|
.card &,
|
|
33
48
|
.modal &,
|
|
34
|
-
.table-data-grid__loading--loader &{
|
|
49
|
+
.table-data-grid__loading--loader & {
|
|
35
50
|
background: @component-background-default;
|
|
36
51
|
}
|
|
37
52
|
}
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
@import "../mixins/_vendor-prefixes.less";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Spinner - Rectangle bar spinner/loader animation
|
|
5
|
+
*
|
|
6
|
+
* Note: Uses color tokens (@text-muted; @spinner-color) and @size-* tokens where applicable.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally hardcoded values:
|
|
9
|
+
* - Spinner dimensions (50px, 40px, 30px, 60px, 45px): Component-specific sizes
|
|
10
|
+
* - Padding values (45px, 35px, 11px): Component-specific positioning offsets
|
|
11
|
+
* - Negative margins (-25px, -15px, -28px): Centering calculations (half of width/height)
|
|
12
|
+
* - Bar width (6px): Spinner bar width (off-grid)
|
|
13
|
+
* - Animation duration (1.2s) and delays (-1.1s to -0.8s): Animation timing
|
|
14
|
+
* - Transform scale (0.5): Size reduction for button variant
|
|
15
|
+
* - RGBA background: Semi-transparent overlay
|
|
16
|
+
* - Percentages and unitless scale values: Animation and transform values
|
|
17
|
+
*/
|
|
18
|
+
|
|
1
19
|
c8y-rectangle-spinner,
|
|
2
20
|
.c8y-rectangle-spinner {
|
|
3
21
|
position: relative;
|
|
@@ -37,7 +55,7 @@ c8y-rectangle-spinner,
|
|
|
37
55
|
}
|
|
38
56
|
|
|
39
57
|
&.spinner-xs {
|
|
40
|
-
padding-top:
|
|
58
|
+
padding-top: @size-5;
|
|
41
59
|
padding-left: 35px;
|
|
42
60
|
}
|
|
43
61
|
}
|
|
@@ -51,7 +69,7 @@ c8y-rectangle-spinner,
|
|
|
51
69
|
width: 50px;
|
|
52
70
|
height: 40px;
|
|
53
71
|
text-align: center;
|
|
54
|
-
font-size:
|
|
72
|
+
font-size: @size-10;
|
|
55
73
|
opacity: 0.5;
|
|
56
74
|
|
|
57
75
|
&.spinner-xs,
|
|
@@ -61,7 +79,7 @@ c8y-rectangle-spinner,
|
|
|
61
79
|
|
|
62
80
|
> div {
|
|
63
81
|
margin: 0;
|
|
64
|
-
width:
|
|
82
|
+
width: @size-4;
|
|
65
83
|
}
|
|
66
84
|
}
|
|
67
85
|
}
|
|
@@ -116,8 +134,8 @@ c8y-rectangle-spinner,
|
|
|
116
134
|
background-color: rgba(255, 255, 255, 0.7);
|
|
117
135
|
|
|
118
136
|
.grid-stack-item & {
|
|
119
|
-
right:
|
|
120
|
-
left:
|
|
137
|
+
right: @size-10;
|
|
138
|
+
left: @size-10;
|
|
121
139
|
}
|
|
122
140
|
|
|
123
141
|
.spinner {
|
|
@@ -134,7 +152,7 @@ c8y-rectangle-spinner,
|
|
|
134
152
|
vertical-align: middle;
|
|
135
153
|
|
|
136
154
|
.spinner {
|
|
137
|
-
|
|
155
|
+
transform: translateY(-50%);
|
|
138
156
|
}
|
|
139
157
|
}
|
|
140
158
|
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Normalize.css v3.0.3 - Third-party CSS reset library
|
|
4
|
+
*
|
|
5
|
+
* Note: This file is intentionally left unmodified from the original normalize.css.
|
|
6
|
+
* All hardcoded values are part of the standard CSS reset specification.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally hardcoded values (as per normalize.css specification):
|
|
9
|
+
* - All margin/padding values (0, em-based, px-based): Standard reset values
|
|
10
|
+
* - Relative units (em, %): Proportional scaling for cross-browser consistency
|
|
11
|
+
* - 1px and 2px values: Standard border and spacing values for reset
|
|
12
|
+
* - Line-height values: Typography reset specifications
|
|
13
|
+
*/
|
|
14
|
+
|
|
1
15
|
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
|
2
16
|
|
|
3
17
|
// 1. Set default font family to sans-serif.
|
package/styles/base/_print.less
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Print Styles - Media query for print layouts
|
|
4
|
+
*
|
|
5
|
+
* Note: Most spacing values use @size-* tokens from the 8px base unit system.
|
|
6
|
+
*
|
|
7
|
+
* Intentionally hardcoded values:
|
|
8
|
+
* - transform: scale(0.97): Scale factor, not spacing
|
|
9
|
+
* - 1px borders: Standard border widths for print
|
|
10
|
+
* - z-index values: Stacking context for print layout
|
|
11
|
+
* - 100vw/99vh: Full viewport dimensions
|
|
12
|
+
* - orphans/widows: Typography print control
|
|
13
|
+
*/
|
|
14
|
+
|
|
1
15
|
@media print {
|
|
2
16
|
body {
|
|
3
17
|
--c8y-elevation-sm: 0 0 0 1px rgba(var(--c8y-elevation-color), 0.1);
|
|
4
|
-
transform: scale(.97);
|
|
18
|
+
transform: scale(0.97);
|
|
5
19
|
}
|
|
6
20
|
|
|
7
21
|
*,
|
|
@@ -57,9 +71,9 @@
|
|
|
57
71
|
}
|
|
58
72
|
|
|
59
73
|
.btn,
|
|
60
|
-
.dropup
|
|
61
|
-
|
|
62
|
-
border-top-color: @black
|
|
74
|
+
.dropup > .btn {
|
|
75
|
+
> .caret {
|
|
76
|
+
border-top-color: @black !important;
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
|
|
@@ -68,15 +82,14 @@
|
|
|
68
82
|
|
|
69
83
|
td,
|
|
70
84
|
th {
|
|
71
|
-
background-color: @component-background-default
|
|
85
|
+
background-color: @component-background-default !important;
|
|
72
86
|
}
|
|
73
87
|
}
|
|
74
88
|
|
|
75
89
|
.table-bordered {
|
|
76
|
-
|
|
77
90
|
th,
|
|
78
91
|
td {
|
|
79
|
-
border: 1px solid @gray-90
|
|
92
|
+
border: 1px solid @gray-90 !important;
|
|
80
93
|
}
|
|
81
94
|
}
|
|
82
95
|
|
|
@@ -93,13 +106,13 @@
|
|
|
93
106
|
all: unset;
|
|
94
107
|
margin-top: 0;
|
|
95
108
|
margin-left: 0 !important;
|
|
96
|
-
padding: 0
|
|
109
|
+
padding: 0 @size-24 !important;
|
|
97
110
|
|
|
98
111
|
&:has(.dashboard) {
|
|
99
112
|
padding: 0 !important;
|
|
100
113
|
}
|
|
101
114
|
|
|
102
|
-
|
|
115
|
+
> .container-fluid {
|
|
103
116
|
padding-bottom: 0;
|
|
104
117
|
}
|
|
105
118
|
}
|
|
@@ -116,11 +129,11 @@
|
|
|
116
129
|
z-index: 1085 !important;
|
|
117
130
|
overflow-y: auto;
|
|
118
131
|
margin: 0 !important;
|
|
119
|
-
padding-top: calc(@
|
|
120
|
-
padding-bottom:
|
|
132
|
+
padding-top: calc(@size-base * 4) !important;
|
|
133
|
+
padding-bottom: @size-24 !important;
|
|
121
134
|
width: 100vw;
|
|
122
135
|
height: 99vh;
|
|
123
|
-
.c8y-scrollbar
|
|
136
|
+
&:extend(.c8y-scrollbar);
|
|
124
137
|
|
|
125
138
|
.dashboard {
|
|
126
139
|
padding-bottom: 0 !important;
|