@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,192 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: CHIP
4
+ //
5
+ // These are chip classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/chip
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • BASE STYLE
11
+ // • INTERACTIVITY
12
+ // • SIZES
13
+ //
14
+ // ============================================================================
15
+ // $ BASE STYLE
16
+ // ----------------------------------------------------------------------------
17
+ .d-chip {
18
+ // Component CSS Vars
19
+ --chip-color-text: var(--dt-color-foreground-primary);
20
+ --chip-color-background: var(--dt-color-surface-moderate-opaque);
21
+ --chip-border-radius: var(--dt-size-radius-pill);
22
+
23
+ position: relative;
24
+ display: inline-flex;
25
+ align-items: center;
26
+ }
27
+
28
+ .d-chip__label {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ box-sizing: border-box;
33
+ padding: var(--dt-space-300) var(--dt-space-400);
34
+ color: var(--chip-color-text);
35
+ font-size: var(--dt-font-size-200);
36
+ font-family: inherit;
37
+ line-height: var(--lh4);
38
+ background-color: var(--chip-color-background);
39
+ border: none;
40
+ border-radius: var(--chip-border-radius);
41
+ transition-timing-function: var(--ttf-in-out);
42
+ transition-duration: var(--td200);
43
+ transition-property: background-color;
44
+
45
+ // Reserves space within the chip for the close button, since the close button is
46
+ // not nested within the chip. Only apply if close button exists (more than one child).
47
+ &:not(:only-child)::after {
48
+ flex-shrink: 0;
49
+ width: calc(var(--dt-size-500) + var(--dt-size-200));
50
+ height: calc(var(--dt-size-500) + var(--dt-size-200));
51
+ content: '';
52
+ }
53
+
54
+ // These properties are only set if d-chip is interactive (ex: a button).
55
+ &:is(a),
56
+ &:is(button),
57
+ &:is([role='button']),
58
+ &:is([role='link']) {
59
+ text-decoration: none;
60
+ cursor: pointer;
61
+
62
+ &:hover {
63
+ --chip-color-background: var(--dt-color-black-300);
64
+
65
+ text-decoration: none;
66
+ }
67
+
68
+ &:active {
69
+ --chip-color-background: var(--dt-color-black-400);
70
+ }
71
+
72
+ &:focus-visible {
73
+ outline: none;
74
+ box-shadow: var(--dt-shadow-focus);
75
+ }
76
+ }
77
+
78
+ .d-avatar {
79
+ --avatar-size-shape: var(--dt-size-550);
80
+
81
+ margin: var(--dt-space-200-negative) var(--dt-space-300) var(--dt-space-200-negative) var(--dt-space-350-negative);
82
+ }
83
+ }
84
+
85
+ .d-chip__close {
86
+ .d-btn();
87
+ .d-btn--circle();
88
+
89
+ position: absolute;
90
+ right: var(--dt-space-200);
91
+ padding: calc(var(--dt-space-200) + var(--dt-space-100));
92
+ border-width: 0;
93
+
94
+ &::before {
95
+ position: absolute;
96
+ width: 2.6rem; // magic number
97
+ height: 2.8rem; // magic number
98
+ content: '';
99
+ }
100
+
101
+ &:hover:not([disabled]) {
102
+ --button-color-background: hsla(var(--dt-color-black-800-hsl) ~' / ' 15%);
103
+ }
104
+
105
+ &:active:not([disabled]),
106
+ &.d-btn--active:not([disabled]),
107
+ &.d-btn--active:active:not([disabled]) {
108
+ --button-color-background: hsla(var(--dt-color-black-800-hsl) ~' / ' 25%);
109
+ }
110
+ }
111
+
112
+ .d-chip__icon {
113
+ padding-right: var(--dt-space-300);
114
+ line-height: 0;
115
+ }
116
+
117
+ .d-chip__label--active {
118
+ background-color: var(--dt-color-black-400);
119
+ }
120
+
121
+ .d-chip__text {
122
+ overflow: hidden;
123
+ white-space: nowrap;
124
+ text-overflow: ellipsis;
125
+ }
126
+
127
+ // ============================================================================
128
+ // $ SIZES
129
+ // ----------------------------------------------------------------------------
130
+ // $$ EXTRA SMALL
131
+ // ----------------------------------------------------------------------------
132
+ .d-chip__label--xs {
133
+ padding: var(--dt-space-200) var(--dt-space-350);
134
+ font-size: var(--dt-font-size-100);
135
+
136
+ // reserves space within the chip for the close button, since the close button is
137
+ // not nested within the chip.
138
+ &:not(:only-child)::after {
139
+ flex-shrink: 0;
140
+ width: var(--dt-size-450);
141
+ height: var(--dt-size-450);
142
+ content: '';
143
+ }
144
+
145
+ .d-avatar {
146
+ --avatar-size-shape: var(--dt-size-500);
147
+
148
+ margin-right: var(--dt-space-300);
149
+ margin-left: var(--dt-space-300-negative);
150
+ }
151
+ }
152
+
153
+ .d-chip__close--xs {
154
+ padding: var(--dt-space-100);
155
+
156
+ // Clickable area for the close button.
157
+ &::before {
158
+ width: var(--dt-size-550);
159
+ height: var(--dt-size-550);
160
+ }
161
+ }
162
+
163
+ // $$ SMALL
164
+ // ----------------------------------------------------------------------------
165
+ .d-chip__label--sm {
166
+ padding: var(--dt-space-200) var(--dt-space-400);
167
+ font-size: var(--dt-font-size-200);
168
+
169
+ // reserves space within the chip for the close button, since the close button is
170
+ // not nested within the chip.
171
+ &:not(:only-child)::after {
172
+ flex-shrink: 0;
173
+ width: calc(var(--dt-size-500) - var(--dt-size-200)); // 14
174
+ height: calc(var(--dt-size-500) - var(--dt-size-200)); // 14
175
+ content: '';
176
+ }
177
+
178
+ .d-avatar {
179
+ --avatar-size-shape: calc(var(--dt-size-500) + var(--dt-size-300)); // 20
180
+
181
+ margin-right: var(--dt-space-300);
182
+ }
183
+ }
184
+
185
+ .d-chip__close--sm {
186
+ padding: var(--dt-space-200);
187
+
188
+ &::before {
189
+ width: var(--dt-size-550);
190
+ height: var(--dt-size-550);
191
+ }
192
+ }
@@ -0,0 +1,26 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: Codeblock
4
+ //
5
+ // These are the styles for codeblock component.
6
+ //
7
+ // TABLE OF CONTENTS
8
+ // • BASE STYLE
9
+ //
10
+ // ============================================================================
11
+ // $ BASE STYLE
12
+ // ----------------------------------------------------------------------------
13
+
14
+ .d-codeblock {
15
+ display: block;
16
+ padding: var(--dt-space-400);
17
+ color: var(--dt-color-foreground-secondary);
18
+ font-size: var(--dt-font-size-200);
19
+ font-family: var(--dt-font-family-mono);
20
+ line-height: var(--dt-font-line-height-400);
21
+ white-space: pre-wrap;
22
+ background-color: var(--dt-color-surface-secondary);
23
+ border: var(--dt-size-100) solid;
24
+ border-color: var(--dt-color-border-subtle);
25
+ border-radius: var(--dt-size-radius-400);
26
+ }
@@ -0,0 +1,33 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: COLLAPSIBLE
4
+ //
5
+ // These are collapsible classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/collapsible
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • BASE STYLE
11
+ //
12
+ // ============================================================================
13
+ // $ BASE STYLE
14
+ // ----------------------------------------------------------------------------
15
+ .d-collapsible__icon {
16
+ --icon-base-scale: var(--dt-size-400);
17
+ --icon-size-300: calc(var(--icon-base-scale) * 2.25);
18
+ --icon-size: var(--icon-size-300);
19
+
20
+ flex: none;
21
+ flex-shrink: 0;
22
+ width: var(--icon-size);
23
+ height: var(--icon-size);
24
+ margin-right: var(--dt-space-400);
25
+ fill: currentColor;
26
+ }
27
+
28
+ .d-collapsible__anchor-text {
29
+ margin-right: auto;
30
+ overflow: hidden;
31
+ white-space: nowrap;
32
+ text-overflow: ellipsis;
33
+ }
@@ -0,0 +1,28 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: COMBOBOX
4
+ //
5
+ // These are combobox classes for Dialpad's design system Dialtone.
6
+ // For further documentation of these and other classes,
7
+ // visit https://dialpad.design/components/combobox
8
+ //
9
+ // TABLE OF CONTENTS
10
+ // • EMPTY LIST
11
+ // • LOADING LIST LIST
12
+ //
13
+ // ============================================================================
14
+ // $ EMPTY LIST
15
+ // ----------------------------------------------------------------------------
16
+ .d-combobox__empty-list {
17
+ padding: var(--dt-space-0);
18
+ }
19
+
20
+ // ============================================================================
21
+ // $ LOADING LIST
22
+ // ----------------------------------------------------------------------------
23
+ .d-combobox__loading-list {
24
+ max-height: var(--dt-size-925);
25
+ margin-top: var(--dt-space-400);
26
+ padding: var(--dt-space-0);
27
+ overflow-y: auto;
28
+ }
@@ -0,0 +1,146 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: DATEPICKER
4
+ //
5
+ // These are the styles for datepicker component.
6
+ //
7
+ // TABLE OF CONTENTS
8
+ // • BASE STYLE
9
+ //
10
+ // ============================================================================
11
+ // $ BASE STYLE
12
+ // ----------------------------------------------------------------------------
13
+ .d-datepicker {
14
+ --datepicker-width: calc(var(--dt-size-300) * 75); // A bit of a magic number as default fixed size, may use CSS utilities to override
15
+ --datepicker-day-size: calc(var(--dt-size-600) - var(--dt-size-200)); // Emulates SM button since Vue component in lieu of Vue component using DT button
16
+
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: var(--dt-space-400);
20
+ width: var(--datepicker-width);
21
+ padding: var(--dt-space-500);
22
+
23
+ p {
24
+ display: flex;
25
+ color: var(--dt-color-foreground-secondary);
26
+ font-size: var(--dt-font-size-100);
27
+ text-transform: uppercase;
28
+ }
29
+
30
+ &--body {
31
+ padding: 0;
32
+ }
33
+
34
+ // TODO: update VUE component to be use a raw <table>
35
+ &__month-year-picker {
36
+ display: flex;
37
+ gap: var(--dt-space-500);
38
+ align-items: center;
39
+ justify-content: space-between;
40
+
41
+ > div {
42
+ display: flex;
43
+ gap: var(--dt-space-200);
44
+ }
45
+
46
+ button {
47
+ // TODO: all of this should be replaced with the Vue DT button
48
+ display: inline-flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ width: var(--datepicker-day-size);
52
+ height: var(--datepicker-day-size);
53
+ padding: 0;
54
+ color: var(--dt-action-color-foreground-base-default);
55
+ background-color: var(--dt-action-color-background-base-default);
56
+ border: none;
57
+ border-radius: var(--dt-size-radius-circle);
58
+ cursor: pointer;
59
+
60
+ &:hover {
61
+ color: var(--dt-action-color-foreground-base-hover);
62
+ background-color: var(--dt-action-color-background-base-hover);
63
+ }
64
+
65
+ &:active {
66
+ color: var(--dt-action-color-foreground-base-active);
67
+ background-color: var(--dt-action-color-background-base-active);
68
+ }
69
+ }
70
+ }
71
+
72
+ &__calendar {
73
+ display: flex;
74
+ flex-direction: column;
75
+ gap: var(--dt-space-200);
76
+ }
77
+
78
+ &__week-day {
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: space-between;
82
+
83
+ > div {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ width: var(--datepicker-day-size);
88
+ height: var(--datepicker-day-size);
89
+
90
+ p {
91
+ margin: 0;
92
+ color: var(--dt-color-foreground-tertiary);
93
+ font-weight: var(--dt-font-weight-medium);
94
+ }
95
+ }
96
+ }
97
+
98
+ &__week {
99
+ display: flex;
100
+ align-items: center;
101
+ justify-content: space-between;
102
+ }
103
+
104
+ &__day {
105
+ // TODO: all of this should be replaced with the Vue DT button
106
+ width: var(--datepicker-day-size);
107
+ height: var(--datepicker-day-size);
108
+ padding: 0;
109
+ color: var(--dt-action-color-foreground-muted-default);
110
+ font-size: var(--dt-font-size-100);
111
+ font-variant-numeric: tabular-nums;
112
+ line-height: 1;
113
+ background-color: transparent;
114
+ border: none;
115
+ border-radius: var(--dt-size-radius-circle);
116
+ cursor: pointer;
117
+
118
+ &--disabled {
119
+ color: var(--dt-color-foreground-muted);
120
+ cursor: default;
121
+ }
122
+
123
+ &--selected {
124
+ color: var(--dt-color-neutral-white);
125
+ background: var(--dt-color-brand-purple);
126
+ }
127
+
128
+ &:hover:not(.d-datepicker__day--selected, .d-datepicker__day--disabled) {
129
+ color: var(--dt-action-color-foreground-muted-hover);
130
+ background-color: var(--dt-action-color-background-muted-hover);
131
+ }
132
+
133
+ &:active:not(.d-datepicker__day--selected, .d-datepicker__day--disabled) {
134
+ color: var(--dt-action-color-foreground-muted-active);
135
+ background-color: var(--dt-action-color-background-muted-active);
136
+ }
137
+
138
+ &:focus-visible {
139
+ box-shadow: var(--dt-shadow-focus);
140
+ }
141
+
142
+ &:focus-visible:not(.d-datepicker__day--selected) {
143
+ background-color: var(--dt-color-surface-moderate);
144
+ }
145
+ }
146
+ }
@@ -0,0 +1,223 @@
1
+ //
2
+ // DIALTONE
3
+ // COMPONENTS: EMOJI-PICKER
4
+ //
5
+ // These are the styles for emoji-picker component.
6
+ //
7
+ //
8
+ // TABLE OF CONTENTS
9
+ // • BASE STYLE
10
+
11
+ // @@ BASE STYLE
12
+ // ----------------------------------------------------------------------------
13
+ .d-emoji-picker {
14
+ flex-direction: column;
15
+ // fixed width to achieve accessibility in keyboard (372px)
16
+ // with this width we have 9 emoji per row
17
+ width: calc(var(--dt-size-925) + var(--dt-size-600) + var(--dt-size-400));
18
+ height: 100%;
19
+ background-color: var(--dt-color-surface-primary);
20
+ border-radius: var(--dt-size-300);
21
+
22
+ &--header {
23
+ position: relative;
24
+ padding: var(--dt-space-300) var(--dt-space-300) 0 var(--dt-space-400);
25
+
26
+ &::after {
27
+ position: absolute;
28
+ right: 0;
29
+ bottom: 0;
30
+ left: 0;
31
+ height: var(--dt-size-100);
32
+ background-color: var(--dt-color-surface-moderate) !important;
33
+ content: '';
34
+ }
35
+ }
36
+
37
+ &__alignment {
38
+ width: auto;
39
+ max-width: calc(var(--dt-size-925) + var(--dt-size-400));
40
+ margin: 0 var(--dt-space-500);
41
+ }
42
+
43
+ &--footer {
44
+ position: relative;
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: space-between;
48
+ height: calc(var(--dt-size-650) + var(--dt-size-400) + var(--dt-size-200));
49
+ padding: 0 var(--dt-space-500);
50
+ background: var(--dt-color-surface-secondary);
51
+ border-top: var(--dt-size-100) solid var(--dt-color-border-subtle);
52
+ }
53
+
54
+ &__tabset-list {
55
+ gap: var(--dt-space-300);
56
+
57
+ &::after {
58
+ background-color: var(--dt-color-surface-moderate) !important;
59
+ }
60
+
61
+ button {
62
+ padding: var(--dt-space-400);
63
+
64
+ &.d-tab--selected {
65
+ &::after {
66
+ height: var(--dt-size-200);
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ &__skin-list {
73
+ display: inline-flex;
74
+ flex-direction: row;
75
+ gap: var(--dt-space-300);
76
+ align-items: flex-start;
77
+ padding: var(--dt-space-300);
78
+ background: rgba(0, 0, 0, 0.05);
79
+ border-radius: calc(var(--dt-size-600) + var(--dt-size-400));
80
+
81
+ button {
82
+ width: var(--dt-size-600);
83
+ height: var(--dt-size-600);
84
+ margin: 0;
85
+ padding: 0;
86
+ background: none;
87
+ border: none;
88
+ border-radius: calc(var(--dt-size-550) + var(--dt-size-300));
89
+ outline: none;
90
+ cursor: pointer;
91
+
92
+ &:hover {
93
+ background: rgba(0, 0, 0, 0.1);
94
+ border-radius: calc(var(--dt-size-550) + var(--dt-size-300));
95
+ }
96
+
97
+ &.selected {
98
+ border: var(--dt-size-100) solid rgba(0, 0, 0, 0.25);
99
+ border-radius: calc(var(--dt-size-550) + var(--dt-size-300));
100
+ }
101
+ }
102
+ }
103
+
104
+ &__skin-selected {
105
+ button {
106
+ display: inline-block;
107
+ width: var(--dt-size-625);
108
+ height: var(--dt-size-625);
109
+ margin: 0;
110
+ padding: calc(var(--dt-space-350) + var(--dt-space-100));
111
+ background: rgba(0, 0, 0, 0.1);
112
+ border: none;
113
+ border-radius: calc(var(--dt-size-550) + var(--dt-size-300));
114
+ outline: none;
115
+ cursor: pointer;
116
+
117
+ &:hover {
118
+ background: var(--dt-color-surface-bold);
119
+ }
120
+ }
121
+ }
122
+
123
+ &__selector {
124
+ min-height: calc(var(--dt-size-905) + var(--dt-size-600) + var(--dt-size-100));
125
+
126
+ p {
127
+ margin-bottom: var(--dt-space-300);
128
+ font-weight: 700;
129
+ font-size: var(--dt-size-450);
130
+ letter-spacing: -0.01em;
131
+ }
132
+ }
133
+
134
+ &__category {
135
+ position: sticky;
136
+ top: 0;
137
+ width: 100%;
138
+ margin: 0;
139
+ padding: var(--dt-space-525) var(--dt-space-500) 0 var(--dt-space-500);
140
+ background: var(--dt-color-surface-primary);
141
+ }
142
+
143
+ &__list {
144
+ position: relative;
145
+ height: 100%;
146
+ max-height: calc(var(--dt-size-905) + var(--dt-size-600) + var(--dt-size-100));
147
+ padding-bottom: calc(var(--dt-space-300) + var(--dt-space-100));
148
+ overflow: hidden auto;
149
+
150
+ div:not(:first-child) {
151
+ p {
152
+ margin-top: calc(var(--dt-space-525) + var(--dt-space-200));
153
+ }
154
+ }
155
+ }
156
+
157
+ &__search-label {
158
+ margin-top: calc(var(--dt-space-525));
159
+ }
160
+
161
+ &__tab {
162
+ display: flex;
163
+ flex-wrap: wrap;
164
+ gap: var(--dt-space-200);
165
+ width: calc(100% + calc(var(--dt-size-500) - var(--dt-size-100)));
166
+ max-width: calc(var(--dt-size-925) + var(--dt-size-400));
167
+ // We use this margin left to align the emoji list with the tabset label
168
+ margin-left: var(--dt-space-350-negative);
169
+
170
+ button {
171
+ display: flex;
172
+ align-items: center;
173
+ justify-content: center;
174
+ width: calc(var(--dt-size-600) + var(--dt-size-300));
175
+ height: calc(var(--dt-size-600) + var(--dt-size-300));
176
+ margin: 0;
177
+ padding: 0;
178
+ background: none;
179
+ border: none;
180
+ border-radius: 50%;
181
+ outline: none;
182
+ cursor: pointer;
183
+
184
+ &:hover,
185
+ &:active {
186
+ background: rgba(0, 0, 0, 0.1);
187
+ }
188
+
189
+ &.hover-emoji {
190
+ background: rgba(0, 0, 0, 0.1);
191
+ }
192
+
193
+ &:focus {
194
+ box-shadow: var(--dt-shadow-focus);
195
+ }
196
+ }
197
+ }
198
+
199
+ &__search {
200
+ position: relative;
201
+ z-index: 1;
202
+ margin: var(--dt-space-500) var(--dt-space-550) 0 var(--dt-space-500);
203
+ background-color: var(--dt-color-surface-primary);
204
+ }
205
+
206
+ &__search-button {
207
+ margin: 0;
208
+ padding: 0;
209
+ line-height: 0;
210
+ background: none;
211
+ border: none;
212
+ outline: none;
213
+ cursor: pointer;
214
+ }
215
+
216
+ &__data {
217
+ display: flex;
218
+ gap: var(--dt-space-100);
219
+ align-items: center;
220
+ width: 100%;
221
+ max-width: calc(var(--dt-size-905) + var(--dt-size-550) + var(--dt-size-200));
222
+ }
223
+ }