@dialpad/dialtone-css 1.0.0

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.
Files changed (134) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +64 -0
  4. package/lib/build/favicons/dialpad/favicon-beta-notification__512.png +0 -0
  5. package/lib/build/favicons/dialpad/favicon-beta__512.png +0 -0
  6. package/lib/build/favicons/dialpad/favicon-csr__512.png +0 -0
  7. package/lib/build/favicons/dialpad/favicon-notification__512.png +0 -0
  8. package/lib/build/favicons/dialpad/favicon-staging-notification__512.png +0 -0
  9. package/lib/build/favicons/dialpad/favicon-staging__512.png +0 -0
  10. package/lib/build/favicons/dialpad/favicon__512.png +0 -0
  11. package/lib/build/favicons/favicon-dialtone__512.png +0 -0
  12. package/lib/build/favicons/uberconference/favicon-uberconference__512.png +0 -0
  13. package/lib/build/fonts/Archivo-Bold.woff2 +0 -0
  14. package/lib/build/fonts/Archivo-Regular.woff2 +0 -0
  15. package/lib/build/fonts/Archivo-SemiBold.woff2 +0 -0
  16. package/lib/build/fonts/ArchivoExpanded-SemiBold.woff2 +0 -0
  17. package/lib/build/fonts/ArchivoSemiExpanded-Medium.woff2 +0 -0
  18. package/lib/build/fonts/ArchivoSemiExpanded-SemiBold.woff2 +0 -0
  19. package/lib/build/js/dialtone_health_check/deprecated_icons.cjs +105 -0
  20. package/lib/build/js/dialtone_health_check/index.cjs +82 -0
  21. package/lib/build/js/dialtone_health_check/non_dialtone_properties.cjs +44 -0
  22. package/lib/build/js/dialtone_migration_helper/configs/box-shadows.mjs +19 -0
  23. package/lib/build/js/dialtone_migration_helper/configs/colors.mjs +69 -0
  24. package/lib/build/js/dialtone_migration_helper/configs/fonts.mjs +49 -0
  25. package/lib/build/js/dialtone_migration_helper/configs/size-and-space.mjs +124 -0
  26. package/lib/build/js/dialtone_migration_helper/helpers.mjs +212 -0
  27. package/lib/build/js/dialtone_migration_helper/index.mjs +135 -0
  28. package/lib/build/less/components/avatar.less +169 -0
  29. package/lib/build/less/components/badge.less +139 -0
  30. package/lib/build/less/components/banner.less +77 -0
  31. package/lib/build/less/components/breadcrumbs.less +88 -0
  32. package/lib/build/less/components/button.less +554 -0
  33. package/lib/build/less/components/card.less +56 -0
  34. package/lib/build/less/components/chip.less +192 -0
  35. package/lib/build/less/components/codeblock.less +26 -0
  36. package/lib/build/less/components/collapsible.less +33 -0
  37. package/lib/build/less/components/combobox.less +28 -0
  38. package/lib/build/less/components/datepicker.less +146 -0
  39. package/lib/build/less/components/emoji-picker.less +223 -0
  40. package/lib/build/less/components/forms.less +153 -0
  41. package/lib/build/less/components/icon.less +63 -0
  42. package/lib/build/less/components/image-viewer.less +35 -0
  43. package/lib/build/less/components/input.less +321 -0
  44. package/lib/build/less/components/item-layout.less +53 -0
  45. package/lib/build/less/components/keyboard-shortcut.less +39 -0
  46. package/lib/build/less/components/link.less +130 -0
  47. package/lib/build/less/components/list-group.less +48 -0
  48. package/lib/build/less/components/list-item-group.less +17 -0
  49. package/lib/build/less/components/modal.less +340 -0
  50. package/lib/build/less/components/notice.less +171 -0
  51. package/lib/build/less/components/pagination.less +41 -0
  52. package/lib/build/less/components/popover.less +99 -0
  53. package/lib/build/less/components/presence.less +60 -0
  54. package/lib/build/less/components/radio-checkbox.less +278 -0
  55. package/lib/build/less/components/root-layout.less +125 -0
  56. package/lib/build/less/components/selects.less +152 -0
  57. package/lib/build/less/components/skeleton.less +101 -0
  58. package/lib/build/less/components/stack.less +129 -0
  59. package/lib/build/less/components/tab-panel.less +15 -0
  60. package/lib/build/less/components/table.less +118 -0
  61. package/lib/build/less/components/tabs.less +219 -0
  62. package/lib/build/less/components/toast.less +120 -0
  63. package/lib/build/less/components/toggle.less +173 -0
  64. package/lib/build/less/components/tooltip.less +267 -0
  65. package/lib/build/less/dialtone-globals.less +45 -0
  66. package/lib/build/less/dialtone-reset.less +362 -0
  67. package/lib/build/less/dialtone-variables.less +16 -0
  68. package/lib/build/less/dialtone.less +71 -0
  69. package/lib/build/less/themes/default.less +83 -0
  70. package/lib/build/less/themes/example.less +89 -0
  71. package/lib/build/less/utilities/backgrounds.less +139 -0
  72. package/lib/build/less/utilities/borders.less +196 -0
  73. package/lib/build/less/utilities/colors.less +122 -0
  74. package/lib/build/less/utilities/effects.less +210 -0
  75. package/lib/build/less/utilities/flex.less +227 -0
  76. package/lib/build/less/utilities/grid.less +244 -0
  77. package/lib/build/less/utilities/interactivity.less +69 -0
  78. package/lib/build/less/utilities/layout.less +146 -0
  79. package/lib/build/less/utilities/lint-staged.config.cjs +5 -0
  80. package/lib/build/less/utilities/sizing.less +152 -0
  81. package/lib/build/less/utilities/spacing.less +107 -0
  82. package/lib/build/less/utilities/typography.less +300 -0
  83. package/lib/build/less/variables/layout.less +19 -0
  84. package/lib/build/less/variables/sizes.less +64 -0
  85. package/lib/build/less/variables/typography.less +46 -0
  86. package/lib/build/less/variables/visual-styles.less +77 -0
  87. package/lib/build/svg/spot/blank-space.svg +35 -0
  88. package/lib/build/svg/spot/browser-list-callout.svg +27 -0
  89. package/lib/build/svg/spot/browser-table-graph.svg +37 -0
  90. package/lib/build/svg/spot/female-laptop-typing.svg +21 -0
  91. package/lib/build/svg/spot/file-upload.svg +50 -0
  92. package/lib/build/svg/spot/male-laptop-typing.svg +24 -0
  93. package/lib/build/svg/spot/mind.svg +58 -0
  94. package/lib/build/svg/spot/publish.svg +54 -0
  95. package/lib/build/svg/spot/vector-vortex.svg +53 -0
  96. package/lib/build/svg/spot/wireless-screenshare.svg +30 -0
  97. package/lib/dist/css/dialtone.css +18711 -0
  98. package/lib/dist/css/dialtone.min.css +1 -0
  99. package/lib/dist/fonts/Archivo-Bold.woff2 +0 -0
  100. package/lib/dist/fonts/Archivo-Regular.woff2 +0 -0
  101. package/lib/dist/fonts/Archivo-SemiBold.woff2 +0 -0
  102. package/lib/dist/fonts/ArchivoExpanded-SemiBold.woff2 +0 -0
  103. package/lib/dist/fonts/ArchivoSemiExpanded-Medium.woff2 +0 -0
  104. package/lib/dist/fonts/ArchivoSemiExpanded-SemiBold.woff2 +0 -0
  105. package/lib/dist/js/dialtone_health_check/deprecated_icons.cjs +105 -0
  106. package/lib/dist/js/dialtone_health_check/index.cjs +82 -0
  107. package/lib/dist/js/dialtone_health_check/non_dialtone_properties.cjs +44 -0
  108. package/lib/dist/js/dialtone_migration_helper/configs/box-shadows.mjs +19 -0
  109. package/lib/dist/js/dialtone_migration_helper/configs/colors.mjs +69 -0
  110. package/lib/dist/js/dialtone_migration_helper/configs/fonts.mjs +49 -0
  111. package/lib/dist/js/dialtone_migration_helper/configs/size-and-space.mjs +124 -0
  112. package/lib/dist/js/dialtone_migration_helper/helpers.mjs +212 -0
  113. package/lib/dist/js/dialtone_migration_helper/index.mjs +135 -0
  114. package/lib/dist/svg/spot/blank-space.svg +1 -0
  115. package/lib/dist/svg/spot/browser-list-callout.svg +1 -0
  116. package/lib/dist/svg/spot/browser-table-graph.svg +1 -0
  117. package/lib/dist/svg/spot/female-laptop-typing.svg +1 -0
  118. package/lib/dist/svg/spot/file-upload.svg +1 -0
  119. package/lib/dist/svg/spot/male-laptop-typing.svg +1 -0
  120. package/lib/dist/svg/spot/mind.svg +1 -0
  121. package/lib/dist/svg/spot/publish.svg +1 -0
  122. package/lib/dist/svg/spot/vector-vortex.svg +1 -0
  123. package/lib/dist/svg/spot/wireless-screenshare.svg +1 -0
  124. package/lib/dist/vue/spot/SpotBlankSpace.vue +3 -0
  125. package/lib/dist/vue/spot/SpotBrowserListCallout.vue +3 -0
  126. package/lib/dist/vue/spot/SpotBrowserTableGraph.vue +3 -0
  127. package/lib/dist/vue/spot/SpotFemaleLaptopTyping.vue +3 -0
  128. package/lib/dist/vue/spot/SpotFileUpload.vue +3 -0
  129. package/lib/dist/vue/spot/SpotMaleLaptopTyping.vue +3 -0
  130. package/lib/dist/vue/spot/SpotMind.vue +3 -0
  131. package/lib/dist/vue/spot/SpotPublish.vue +3 -0
  132. package/lib/dist/vue/spot/SpotVectorVortex.vue +3 -0
  133. package/lib/dist/vue/spot/SpotWirelessScreenshare.vue +3 -0
  134. package/package.json +115 -0
@@ -0,0 +1,41 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: Pagination
4
+ //
5
+ // These are the styles for Pagination component.
6
+ //
7
+ // TABLE OF CONTENTS
8
+ // • BASE STYLE
9
+ // • PREV & NEXT BUTTONS
10
+ // • SEPARATOR
11
+ //
12
+ // ============================================================================
13
+ // $ BASE STYLE
14
+ // ----------------------------------------------------------------------------
15
+ .d-pagination {
16
+ display: flex;
17
+ flex-direction: row;
18
+ grid-gap: var(--dt-space-300);
19
+ align-items: center;
20
+ }
21
+
22
+ // ============================================================================
23
+ // $ PREV & NEXT BUTTONS
24
+ // ----------------------------------------------------------------------------
25
+ .d-pagination__button {
26
+ padding-right: var(--dt-space-400);
27
+ padding-left: var(--dt-space-400);
28
+ }
29
+
30
+ // ============================================================================
31
+ // $ SEPARATOR
32
+ // ----------------------------------------------------------------------------
33
+ .d-pagination__separator {
34
+ align-self: flex-end;
35
+ }
36
+
37
+ .d-pagination__separator-icon {
38
+ width: var(--dt-size-550);
39
+ color: var(--dt-color-foreground-tertiary);
40
+ text-align: center;
41
+ }
@@ -0,0 +1,99 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: POPOVER
4
+ //
5
+ // These are popover classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/popover
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • POPOVER
11
+ // • POPOVER DIALOG
12
+ // • CSS CUSTOM PROPERTIES
13
+ // • POPOVER DIALOG
14
+ // - Base dialog style
15
+ // - Content
16
+ // - Header / Footer
17
+
18
+ // $ POPOVER
19
+ // ----------------------------------------------------------------------------
20
+ .d-popover {
21
+ // $ POPOVER DIALOG
22
+ // ----------------------------------------------------------------------------
23
+
24
+ &__dialog {
25
+ // $$ CSS CUSTOM PROPERTIES
26
+ // ----------------------------------------------------------------------------
27
+ --popover-color-background: var(--dt-color-surface-secondary);
28
+ --popover-border-width: var(--dt-size-100);
29
+ --popover-border-radius: var(--dt-size-400);
30
+ --popover-color-border: var(--dt-color-border-subtle);
31
+ --popover-shadow: var(--dt-shadow-card);
32
+
33
+ &,
34
+ *,
35
+ *::before,
36
+ *::after {
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ display: grid;
41
+ grid-template-rows: min-content 1fr min-content;
42
+ overflow: auto;
43
+ background-color: var(--popover-color-background);
44
+ background-clip: padding-box;
45
+ border: var(--popover-border-width) solid var(--popover-color-border);
46
+ border-radius: var(--popover-border-radius);
47
+ box-shadow: var(--popover-shadow);
48
+
49
+ // to be set on the dialog when it is modal
50
+ &--modal {
51
+ z-index: var(--zi-modal-element);
52
+ }
53
+ }
54
+
55
+ // $$ DIALOG CONTENT
56
+ // ----------------------------------------------------------------------------
57
+ &__content {
58
+ grid-row: 2;
59
+ overflow: auto;
60
+ }
61
+
62
+ // $$ DIALOG HEADER / FOOTER
63
+ // ----------------------------------------------------------------------------
64
+
65
+ &__header,
66
+ &__footer {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: flex-end;
70
+ width: 100%;
71
+ min-height: var(--dt-size-650);
72
+ padding-top: var(--dt-space-350);
73
+ padding-bottom: var(--dt-space-350);
74
+ overflow: auto;
75
+ font-weight: var(--dt-font-weight-semi-bold);
76
+ font-size: var(--dt-font-size-200);
77
+
78
+ &__content {
79
+ width: 100%;
80
+ text-overflow: ellipsis;
81
+ }
82
+
83
+ &__close-button {
84
+ margin-right: var(--dt-space-350);
85
+ padding: var(--dt-space-350);
86
+ border-color: transparent;
87
+ }
88
+ }
89
+
90
+ &__header {
91
+ grid-row: 1;
92
+ border-bottom: var(--popover-border-width) solid var(--popover-color-border);
93
+ }
94
+
95
+ &__footer {
96
+ grid-row: 3;
97
+ border-top: var(--popover-border-width) solid var(--popover-color-border);
98
+ }
99
+ }
@@ -0,0 +1,60 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: PRESENCE
4
+ //
5
+ // These are presence classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/presence
8
+
9
+ .d-presence {
10
+ --presence-color-border-base: var(--dt-theme-sidebar-color-background);
11
+ --presence-color-border-offline: var(--dt-color-black-600);
12
+ --presence-color-background-active: var(--dt-theme-presence-color-background-available);
13
+ --presence-color-background-busy: var(--dt-theme-presence-color-background-busy-unavailable);
14
+ --presence-color-background-away: var(--dt-theme-presence-color-background-busy);
15
+ --presence-color-background-offline: var(--dt-theme-sidebar-color-background);
16
+ --presence-border-size: var(--dt-size-200);
17
+ --presence-size: var(--dt-size-400);
18
+
19
+ display: inline-block;
20
+ box-sizing: border-box;
21
+ border-color: var(--presence-color-border-base);
22
+ border-style: solid;
23
+ border-width: var(--presence-border-size);
24
+ border-radius: var(--dt-size-radius-circle);
25
+
26
+ .dt-leftbar-row--selected & {
27
+ --presence-color-border-base: var(--dt-theme-sidebar-selected-row-color-background);
28
+ }
29
+
30
+ .dt-leftbar-row__primary:hover & {
31
+ --presence-color-border-base: var(--dt-theme-sidebar-row-color-background-hover);
32
+ }
33
+
34
+ &__inner {
35
+ box-sizing: border-box;
36
+ width: var(--presence-size);
37
+ height: var(--presence-size);
38
+ border: none;
39
+ border-radius: 50%;
40
+
41
+ &--active {
42
+ background-color: var(--presence-color-background-active);
43
+ }
44
+
45
+ &--busy {
46
+ background-color: var(--presence-color-background-busy);
47
+ }
48
+
49
+ &--away {
50
+ background-color: var(--presence-color-background-away);
51
+ }
52
+
53
+ &--offline {
54
+ background-color: var(--presence-color-background-offline);
55
+ border-color: var(--presence-color-border-offline);
56
+ border-style: solid;
57
+ border-width: var(--dt-size-200);
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,278 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: RADIOS & CHECKBOXES
4
+ //
5
+ // These are input classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/inputs
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • SHARED STYLES
11
+ // • WRAPPERS
12
+ // • INPUT & COPY BLOCKS
13
+ // • LABELS
14
+ // • CHECKBOXES
15
+ // - Modifications
16
+ // • RADIOS
17
+ // - Modifications
18
+ //
19
+ // ============================================================================
20
+ // $ RADIOS & CHECKBOXES
21
+ // ----------------------------------------------------------------------------
22
+
23
+ .d-checkbox,
24
+ .d-radio {
25
+ // Component specific CSS Vars
26
+ // ------------------------------------------------------------------------
27
+ --check-radio-color-border: var(--dt-checkbox-color-border-unchecked);
28
+ --check-radio-color-border-checked: var(--dt-checkbox-color-border-checked);
29
+ --check-radio-color-border-disabled: var(--dt-inputs-color-border-disabled);
30
+ --check-radio-color-background: var(--dt-inputs-color-background-default);
31
+ --check-radio-color-background-checked: var(--dt-checkbox-color-background-checked);
32
+ --check-radio-color-background-disabled: var(--dt-inputs-color-background-disabled);
33
+ --check-radio-border-width: calc(var(--dt-size-100) + var(--dt-size-50)); // 1.5
34
+
35
+ // [1] Check to see if we can use custom styles, if so reset the defaults
36
+ // ------------------------------------------------------------------------
37
+ @supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
38
+ width: var(--dt-size-500); // 16
39
+ height: var(--dt-size-500); // 16
40
+
41
+ // [2] Now re-style the checkboxes and radios
42
+ // --------------------------------------------------------------------
43
+ margin: 0;
44
+ font-size: inherit;
45
+ background-color: var(--check-radio-color-background);
46
+ border: var(--check-radio-border-width) solid var(--check-radio-color-border);
47
+ outline: 0;
48
+ box-shadow: none;
49
+ cursor: pointer;
50
+ -webkit-appearance: none;
51
+ -moz-appearance: none;
52
+ appearance: none;
53
+
54
+ &::-ms-check {
55
+ display: none;
56
+ }
57
+
58
+ &:focus,
59
+ &:checked:focus {
60
+ outline: 0;
61
+ box-shadow: var(--dt-shadow-focus);
62
+ }
63
+
64
+ &:checked {
65
+ --check-radio-color-border: var(--check-radio-color-border-checked);
66
+ }
67
+ }
68
+
69
+ flex: 0 auto;
70
+ align-self: flex-start;
71
+ transition-timing-function: var(--ttf-out-quint);
72
+ transition-duration: var(--td200);
73
+ transition-property: box-shadow;
74
+
75
+ // -- DISABLED
76
+ &[disabled],
77
+ &--disabled {
78
+ --check-radio-color: var(--dt-color-foreground-disabled);
79
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
80
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
81
+
82
+ cursor: not-allowed;
83
+ }
84
+ }
85
+
86
+
87
+ // ============================================================================
88
+ // $ RADIO / CHECKBOX WRAPPERS
89
+ // ----------------------------------------------------------------------------
90
+ .d-checkbox-group,
91
+ .d-radio-group {
92
+ display: inline-flex;
93
+ gap: var(--dt-space-400); // 8
94
+
95
+ // -- Wrapper Disabled State
96
+ &.d-checkbox-group--disabled,
97
+ &.d-radio-group--disabled {
98
+ .d-checkbox__label,
99
+ .d-radio__label {
100
+ color: var(--dt-color-foreground-disabled);
101
+ cursor: not-allowed;
102
+ }
103
+ }
104
+ }
105
+
106
+ .d-input-group__fieldset {
107
+ display: flex;
108
+ flex-direction: column;
109
+ align-items: flex-start;
110
+
111
+ &__label {
112
+ display: flex;
113
+ flex: 1 0%;
114
+ align-items: baseline;
115
+ justify-content: space-between;
116
+ box-sizing: border-box;
117
+ margin-bottom: var(--dt-space-300);
118
+ color: var(--dt-color-foreground-secondary);
119
+ font-weight: var(--dt-font-weight-semi-bold);
120
+ font-size: var(--dt-font-size-200);
121
+ font-family: inherit;
122
+ line-height: var(--dt-font-line-height-300);
123
+ word-break: break-word;
124
+ overflow-wrap: break-word;
125
+ }
126
+ }
127
+
128
+
129
+ // ============================================================================
130
+ // $ INPUT BLOCKS
131
+ // This holds the radio or checkbox input
132
+ // ----------------------------------------------------------------------------
133
+ .d-checkbox__input,
134
+ .d-radio__input {
135
+ display: flex;
136
+ align-self: flex-start;
137
+ padding-top: var(--dt-space-300);
138
+ }
139
+
140
+
141
+ // ============================================================================
142
+ // $ COPY BLOCKS
143
+ // This holds the label and description copy
144
+ // ----------------------------------------------------------------------------
145
+ .d-checkbox__copy,
146
+ .d-radio__copy {
147
+ display: inline-flex;
148
+ flex-direction: column;
149
+ }
150
+
151
+ .d-checkbox__label,
152
+ .d-radio__label {
153
+ display: inline-flex;
154
+ flex: 1 auto;
155
+ flex-direction: column;
156
+ align-items: flex-start;
157
+ color: var(--dt-color-foreground-primary);
158
+ font-weight: var(--dt-font-weight-normal);
159
+ font-size: var(--dt-font-size-200);
160
+ line-height: var(--dt-font-line-height-400);
161
+ cursor: pointer;
162
+ }
163
+
164
+ .d-checkbox__description {
165
+ display: flex;
166
+ box-sizing: border-box;
167
+ color: var(--dt-color-foreground-tertiary);
168
+ font-size: var(--dt-font-size-100);
169
+ font-family: inherit;
170
+ line-height: var(--dt-font-line-height-400);
171
+ fill: currentColor;
172
+ }
173
+
174
+ // ============================================================================
175
+ // $ CHECKBOXES
176
+ // ----------------------------------------------------------------------------
177
+ .d-checkbox {
178
+ @supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
179
+ background-repeat: no-repeat;
180
+ background-position: center center;
181
+ background-size: contain;
182
+ border-radius: var(--dt-size-300);
183
+
184
+ &:focus-visible,
185
+ &:checked:focus-visible {
186
+ box-shadow: var(--dt-shadow-focus);
187
+ }
188
+
189
+ &:checked {
190
+ --check-radio-color-background: var(--check-radio-color-background-checked);
191
+
192
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z' fill='%23fff'/%3E%3C/svg%3E");
193
+
194
+ // Disabled
195
+ &[disabled] {
196
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
197
+
198
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z' fill='hsl(240, 10%, 51%)'/%3E%3C/svg%3E");
199
+ }
200
+ }
201
+
202
+ &--disabled:checked {
203
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
204
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
205
+
206
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z' fill='hsl(240, 10%, 51%)'/%3E%3C/svg%3E");
207
+ }
208
+
209
+ &--indeterminate,
210
+ &:indeterminate {
211
+ --check-radio-color-background: var(--check-radio-color-background-checked);
212
+ --check-radio-color-border: var(--check-radio-color-border-checked);
213
+
214
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 13H5v-2h14v2z' fill='%23fff'/%3E%3C/svg%3E");
215
+
216
+ &[disabled] {
217
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
218
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
219
+
220
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 13H5v-2h14v2z' fill='hsl(240, 10%, 51%)'/%3E%3C/svg%3E");
221
+ }
222
+ }
223
+
224
+ &--indeterminate&--disabled,
225
+ &:indeterminate&--disabled {
226
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
227
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
228
+
229
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 13H5v-2h14v2z' fill='hsl(240, 10%, 51%)'/%3E%3C/svg%3E");
230
+ }
231
+
232
+ // Disabled
233
+ &[disabled],
234
+ &--disabled {
235
+ --check-radio-color: var(--dt-color-foreground-disabled);
236
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
237
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
238
+ }
239
+ }
240
+ }
241
+
242
+ // ============================================================================
243
+ // $ RADIOS
244
+ // ----------------------------------------------------------------------------
245
+ .d-radio {
246
+ @supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
247
+ border-radius: var(--dt-size-radius-circle);
248
+
249
+ // Disabled
250
+ &[disabled],
251
+ &--disabled {
252
+ --check-radio-color: var(--dt-color-foreground-disabled);
253
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
254
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
255
+ }
256
+
257
+ &:focus-visible,
258
+ &:checked:focus-visible {
259
+ box-shadow: var(--dt-shadow-focus), inset 0 0 0 var(--dt-size-200) var(--dt-color-neutral-white);
260
+ }
261
+
262
+ &:checked {
263
+ --check-radio-color-background: var(--check-radio-color-background-checked);
264
+
265
+ box-shadow: inset 0 0 0 var(--dt-size-200) var(--dt-color-neutral-white);
266
+
267
+ // Disabled
268
+ &[disabled] {
269
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
270
+ }
271
+ }
272
+
273
+ &--disabled:checked {
274
+ --check-radio-color-border: var(--check-radio-color-border-disabled);
275
+ --check-radio-color-background: var(--check-radio-color-background-disabled);
276
+ }
277
+ }
278
+ }
@@ -0,0 +1,125 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: Root Layout
4
+ //
5
+ // These are the styles for root layout for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/root-layout.html
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • BASE STYLE
11
+ //
12
+ // ============================================================================
13
+ // $ BASE STYLE
14
+ // ----------------------------------------------------------------------------
15
+ .d-root-layout {
16
+ position: relative;
17
+ display: grid;
18
+ grid-template-areas:
19
+ 'header header'
20
+ 'sidebar body'
21
+ 'footer footer';
22
+ grid-template-rows: min-content 1fr min-content;
23
+ grid-template-columns: min-content 1fr;
24
+ min-height: 100vh;
25
+
26
+ &--inverted {
27
+ grid-template-areas:
28
+ 'header header'
29
+ 'body sidebar'
30
+ 'footer footer';
31
+ grid-template-columns: 1fr min-content;
32
+ }
33
+
34
+ &--fixed {
35
+ height: 100vh;
36
+ }
37
+
38
+ &__header {
39
+ grid-area: header;
40
+
41
+ &--sticky {
42
+ position: sticky;
43
+ top: 0;
44
+ z-index: var(--zi-navigation);
45
+ }
46
+ }
47
+
48
+ &__sidebar {
49
+ grid-area: sidebar;
50
+ height: 100%;
51
+ overflow: hidden auto;
52
+ box-shadow: none;
53
+ }
54
+
55
+ &__content {
56
+ grid-area: body;
57
+ overflow-y: auto;
58
+ box-shadow: none;
59
+
60
+ &:focus-visible {
61
+ box-shadow: none;
62
+ }
63
+ }
64
+
65
+ &__footer {
66
+ grid-area: footer;
67
+ }
68
+ }
69
+
70
+ @media (max-width: 480px) {
71
+
72
+ // Having a fixed height in mobile mode doesn't really make any sense,
73
+ // so we'll set it back to auto if the media query triggered.
74
+ .d-root-layout--fixed.d-root-layout__responsive--sm {
75
+ height: auto;
76
+ }
77
+
78
+ .d-root-layout__responsive--sm {
79
+ grid-template-areas:
80
+ 'header'
81
+ 'sidebar'
82
+ 'body'
83
+ 'footer';
84
+ grid-template-rows: min-content auto 1fr min-content;
85
+ grid-template-columns: 1fr;
86
+ }
87
+ }
88
+
89
+ @media (max-width: 640px) {
90
+
91
+ // Having a fixed height in mobile mode doesn't really make any sense,
92
+ // so we'll set it back to auto if the media query triggered.
93
+ .d-root-layout--fixed.d-root-layout__responsive--md {
94
+ height: auto;
95
+ }
96
+
97
+ .d-root-layout__responsive--md {
98
+ grid-template-areas:
99
+ 'header'
100
+ 'sidebar'
101
+ 'body'
102
+ 'footer';
103
+ grid-template-rows: min-content auto 1fr min-content;
104
+ grid-template-columns: 1fr;
105
+ }
106
+ }
107
+
108
+ @media (max-width: 980px) {
109
+
110
+ // Having a fixed height in mobile mode doesn't really make any sense,
111
+ // so we'll set it back to auto if the media query triggered.
112
+ .d-root-layout--fixed.d-root-layout__responsive--lg {
113
+ height: auto;
114
+ }
115
+
116
+ .d-root-layout__responsive--lg {
117
+ grid-template-areas:
118
+ 'header'
119
+ 'sidebar'
120
+ 'body'
121
+ 'footer';
122
+ grid-template-rows: min-content auto 1fr min-content;
123
+ grid-template-columns: 1fr;
124
+ }
125
+ }