@digdir/designsystemet-css 1.0.0-next.32 → 1.0.0-next.33

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/dist/tag.css CHANGED
@@ -1 +1 @@
1
- .ds-tag{--dsc-tag-background:var(--ds-color-neutral-background-subtle);--dsc-tag-color:var(--ds-color-neutral-text-default);align-items:center;background-color:var(--dsc-tag-background);border-radius:min(1rem,var(--ds-border-radius-sm));box-sizing:border-box;color:var(--dsc-tag-color);display:flex;min-height:var(--ds-sizing-8);width:-webkit-max-content;width:-moz-max-content;width:max-content;word-break:break-word}.ds-tag,.ds-tag--sm{padding:0 var(--ds-spacing-2)}.ds-tag--sm{min-height:var(--ds-sizing-7)}.ds-tag--md{min-height:var(--ds-sizing-8);padding:0 var(--ds-spacing-2)}.ds-tag--lg{min-height:var(--ds-sizing-9);padding:0 var(--ds-spacing-3)}.ds-tag--neutral{--dsc-tag-background:var(--ds-color-neutral-surface-default);--dsc-tag-color:var(--ds-color-neutral-text-default)}.ds-tag--info{--dsc-tag-background:var(--ds-color-info-surface-default);--dsc-tag-color:var(--ds-color-info-text-default)}.ds-tag--success{--dsc-tag-background:var(--ds-color-success-surface-default);--dsc-tag-color:var(--ds-color-success-text-default)}.ds-tag--warning{--dsc-tag-background:var(--ds-color-warning-surface-default);--dsc-tag-color:var(--ds-color-warning-text-default)}.ds-tag--danger{--dsc-tag-background:var(--ds-color-danger-surface-default);--dsc-tag-color:var(--ds-color-danger-text-default)}.ds-tag--brand1{--dsc-tag-background:var(--ds-color-brand1-surface-default);--dsc-tag-color:var(--ds-color-brand1-text-default)}.ds-tag--brand2{--dsc-tag-background:var(--ds-color-brand2-surface-default);--dsc-tag-color:var(--ds-color-brand2-text-default)}.ds-tag--brand3{--dsc-tag-background:var(--ds-color-brand3-surface-default);--dsc-tag-color:var(--ds-color-brand3-text-default)}
1
+ .ds-tag{--dsc-tag-background:var(--ds-color-neutral-surface-default);--dsc-tag-color:var(--ds-color-neutral-text-default);--dsc-tag-min-height:var(--ds-sizing-8);align-items:center;background:var(--dsc-tag-background);border-radius:min(1rem,var(--ds-border-radius-sm));box-sizing:border-box;color:var(--dsc-tag-color);display:flex;min-height:var(--dsc-tag-min-height);padding:var(--dsc-tag-padding);width:-webkit-max-content;width:-moz-max-content;width:max-content;word-break:break-word}.ds-tag,.ds-tag[data-size=sm]{--dsc-tag-padding:0 var(--ds-spacing-2)}.ds-tag[data-size=sm]{--dsc-tag-min-height:var(--ds-sizing-7)}.ds-tag[data-size=lg]{--dsc-tag-padding:0 var(--ds-spacing-3);--dsc-tag-min-height:var(--ds-sizing-9)}.ds-tag[data-color=info]{--dsc-tag-background:var(--ds-color-info-surface-default);--dsc-tag-color:var(--ds-color-info-text-default)}.ds-tag[data-color=success]{--dsc-tag-background:var(--ds-color-success-surface-default);--dsc-tag-color:var(--ds-color-success-text-default)}.ds-tag[data-color=warning]{--dsc-tag-background:var(--ds-color-warning-surface-default);--dsc-tag-color:var(--ds-color-warning-text-default)}.ds-tag[data-color=danger]{--dsc-tag-background:var(--ds-color-danger-surface-default);--dsc-tag-color:var(--ds-color-danger-text-default)}.ds-tag[data-color=brand1]{--dsc-tag-background:var(--ds-color-brand1-surface-default);--dsc-tag-color:var(--ds-color-brand1-text-default)}.ds-tag[data-color=brand2]{--dsc-tag-background:var(--ds-color-brand2-surface-default);--dsc-tag-color:var(--ds-color-brand2-text-default)}.ds-tag[data-color=brand3]{--dsc-tag-background:var(--ds-color-brand3-surface-default);--dsc-tag-color:var(--ds-color-brand3-text-default)}
package/dist/tooltip.css CHANGED
@@ -1 +1 @@
1
- .ds-tooltip{--dsc-tooltip-background:var(--ds-color-neutral-text-default);--dsc-tooltip-color:var(--ds-color-neutral-background-default);--dsc-tooltip-padding:var(--ds-spacing-1) var(--ds-spacing-2);--dsc-tooltip-border-radius:var(--ds-border-radius-md);background:var(--dsc-tooltip-background);border-radius:var(--dsc-tooltip-border-radius);color:var(--dsc-tooltip-color);padding:var(--dsc-tooltip-padding)}.ds-tooltip__arrow{fill:var(--dsc-tooltip-background)}
1
+ .ds-tooltip{--dsc-tooltip-background:var(--ds-color-neutral-text-default);background:var(--dsc-tooltip-background);border-radius:var(--ds-border-radius-md);color:var(--ds-color-neutral-background-default);padding:var(--ds-spacing-1) var(--ds-spacing-2)}.ds-tooltip__arrow{fill:var(--dsc-tooltip-background)}
@@ -1 +1 @@
1
- .ds-sr-only{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.ds-focus:focus-visible{--dsc-focus-border-width:3px;box-shadow:0 0 0 var(--dsc-focus-border-width) var(--ds-color-focus-inner);outline:var(--dsc-focus-border-width) solid var(--ds-color-focus-outer);outline-offset:var(--dsc-focus-border-width)}.ds-animate-height--closed,.ds-animate-height--openingOrClosing{overflow:hidden}.ds-animate-height--open .ds-animate-height__content{height:auto}.ds-animate-height--closed .ds-animate-height__content{display:none;height:0}
1
+ .ds-sr-only{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:root{--dsc-focus-border-width:3px;--dsc-focus-boxShadow:0 0 0 var(--dsc-focus-border-width) var(--ds-color-focus-inner),0 0 0 calc(var(--dsc-focus-border-width)*2) var(--ds-color-focus-outer)}.ds-focus:focus-visible{box-shadow:var(--dsc-focus-boxShadow);outline:none}.ds-animate-height--closed,.ds-animate-height--openingOrClosing{overflow:hidden}.ds-animate-height--open .ds-animate-height__content{height:auto}.ds-animate-height--closed .ds-animate-height__content{display:none;height:0}
package/divider.css CHANGED
@@ -1,17 +1,8 @@
1
1
  .ds-divider {
2
- border: none;
3
- border-top: 1px solid;
4
- width: 100%;
5
- }
6
-
7
- .ds-divider--default {
8
- border-color: var(--ds-color-neutral-border-subtle);
9
- }
2
+ --dsc-divider-color: var(--ds-color-neutral-border-subtle);
10
3
 
11
- .ds-divider--strong {
12
- border-color: var(--ds-color-neutral-border-default);
13
- }
14
-
15
- .ds-divider--subtle {
16
- border-color: var(--ds-color-neutral-border-subtle);
4
+ border-top: 1px solid var(--dsc-divider-color);
5
+ border-width: 1px 0 0;
6
+ margin-block: .5em;
7
+ width: 100%;
17
8
  }
package/dropdownmenu.css CHANGED
@@ -1,11 +1,6 @@
1
1
  .ds-dropdownmenu {
2
- --dsc-dropdownmenu-background: var(--ds-color-neutral-background-default);
3
- --dsc-dropdownmenu-padding: var(--ds-spacing-2);
4
- --dsc-dropdownmenu-border-radius: min(1rem, var(--ds-border-radius-md));
5
- --dsc-dropdownmenu-border: 1px solid var(--ds-color-neutral-border-subtle);
6
- --dsc-dropdownmenu-min-width: 260px;
7
- --dsc-dropdownmenu-shadow: var(--ds-shadow-md);
8
- --dsc-dropdownmenu-hr-border-color: var(--ds-color-neutral-border-subtle);
2
+ --dsc-dropdownmenu-padding: var(--ds-spacing-3) var(--ds-spacing-2);
3
+ --dsc-dropdownmenu-min-width: 16rem;
9
4
  --dsc-dropdownmenu-item-padding: 0 var(--ds-spacing-4);
10
5
  --dsc-dropdownmenu-header-padding: var(--ds-spacing-2) var(--ds-spacing-4);
11
6
 
@@ -14,38 +9,30 @@
14
9
  z-index: 1500;
15
10
  margin: 0;
16
11
  list-style: none;
17
- border-radius: var(--dsc-dropdownmenu-border-radius);
18
- box-shadow: var(--dsc-dropdownmenu-shadow);
19
- background-color: var(--dsc-dropdownmenu-background);
20
- border: var(--dsc-dropdownmenu-border);
12
+ border-radius: min(1rem, var(--ds-border-radius-md));
13
+ box-shadow: var(--ds-shadow-md);
14
+ background-color: var(--ds-color-neutral-background-default);
15
+ border: 1px solid var(--ds-color-neutral-border-subtle);
21
16
  min-width: var(--dsc-dropdownmenu-min-width);
22
- }
23
-
24
- .ds-dropdownmenu--sm {
25
- --dsc-dropdownmenu-padding: var(--ds-spacing-2);
26
- --dsc-dropdownmenu-min-width: 240px;
27
- }
28
17
 
29
- .ds-dropdownmenu--md {
30
- --dsc-dropdownmenu-padding: var(--ds-spacing-3) var(--ds-spacing-2);
31
- --dsc-dropdownmenu-min-width: 260px;
32
- }
33
-
34
- .ds-dropdownmenu--lg {
35
- --dsc-dropdownmenu-padding: var(--ds-spacing-4) var(--ds-spacing-2);
36
- --dsc-dropdownmenu-min-width: 280px;
37
- }
18
+ &[data-size='sm'] {
19
+ --dsc-dropdownmenu-padding: var(--ds-spacing-2);
20
+ --dsc-dropdownmenu-min-width: 15rem;
21
+ }
38
22
 
39
- .ds-dropdownmenu > hr {
40
- border-color: var(--dsc-dropdownmenu-hr-border-color) !important;
23
+ &[data-size='lg'] {
24
+ --dsc-dropdownmenu-padding: var(--ds-spacing-4) var(--ds-spacing-2);
25
+ --dsc-dropdownmenu-min-width: 18rem;
26
+ }
41
27
  }
42
28
 
43
29
  .ds-dropdownmenu__item {
44
30
  justify-content: start;
45
31
  padding: var(--dsc-dropdownmenu-item-padding);
32
+ width: 100%;
46
33
  }
47
34
 
48
- .ds-dropdownmenu__section {
35
+ .ds-dropdownmenu__group {
49
36
  margin: 0;
50
37
  padding: 0;
51
38
  list-style: none;
package/index.css CHANGED
@@ -10,7 +10,6 @@
10
10
  @import url('./baseline/typography/ingress.css') layer(ds.base.typography);
11
11
  @import url('./baseline/typography/error-message.css') layer(ds.base.typography);
12
12
  @import url('./utilities.css') layer(ds.utilities);
13
- @import url('./box.css') layer(ds.components);
14
13
  @import url('./button.css') layer(ds.components);
15
14
  @import url('./alert.css') layer(ds.components);
16
15
  @import url('./skiplink.css') layer(ds.components);
@@ -19,7 +18,7 @@
19
18
  @import url('./checkbox.css') layer(ds.components);
20
19
  @import url('./radio.css') layer(ds.components);
21
20
  @import url('./search.css') layer(ds.components);
22
- @import url('./native-select.css') layer(ds.components);
21
+ @import url('./select.css') layer(ds.components);
23
22
  @import url('./textfield.css') layer(ds.components);
24
23
  @import url('./textarea.css') layer(ds.components);
25
24
  @import url('./helptext.css') layer(ds.components);
@@ -44,3 +43,4 @@
44
43
  @import url('./combobox.css') layer(ds.components);
45
44
  @import url('./breadcrumbs.css') layer(ds.components);
46
45
  @import url('./badge.css') layer(ds.components);
46
+ @import url('./avatar.css') layer(ds.components);
package/link.css CHANGED
@@ -1,58 +1,56 @@
1
1
  .ds-link {
2
+ --dsc-link-background--active: var(--ds-color-accent-surface-default);
3
+ --dsc-link-background--focus: var(--ds-color-focus-outer);
4
+ --dsc-link-color--active: var(--ds-color-accent-text-default);
5
+ --dsc-link-color--focus: var(--ds-color-focus-inner);
6
+ --dsc-link-color--hover: var(--ds-color-accent-text-default);
7
+ --dsc-link-color--visited: var(--ds-global-purple-12);
2
8
  --dsc-link-color: var(--ds-color-accent-text-subtle);
3
- --dsc-link-color-hover: var(--ds-color-accent-text-default);
4
- --dsc-link-color-active: var(--ds-color-accent-text-default);
5
- --dsc-link-color-active-background: var(--ds-color-accent-surface-default);
6
- --dsc-link-color-visited: var(--ds-global-purple-12);
7
- --dsc-link-color-focus: var(--ds-color-focus-inner);
8
- --dsc-link-color-focus-background: var(--ds-color-focus-outer);
9
+ --dsc-link-text-decoration-thickness--hover: max(2px, 0.125rem, 0.12em);
10
+ --dsc-link-text-decoration-thickness: max(1px, 0.0625rem);
9
11
 
10
- position: relative;
11
12
  color: var(--dsc-link-color);
12
- cursor: pointer;
13
- text-decoration: underline;
14
- text-decoration-thickness: max(1px, 0.0625rem);
13
+ outline: none;
14
+ text-decoration-style: solid;
15
+ text-decoration-thickness: var(--dsc-link-text-decoration-thickness);
15
16
  text-underline-offset: max(5px, 0.25rem);
16
- display: inline-flex;
17
- align-items: center;
18
- gap: var(--ds-spacing-1);
19
- }
20
17
 
21
- .ds-link--accent {
22
- --dsc-link-color: var(--ds-color-accent-text-subtle);
23
- --dsc-link-color-hover: var(--ds-color-accent-text-default);
24
- --dsc-link-color-active: var(--ds-color-accent-text-default);
25
- --dsc-link-color-active-background: var(--ds-color-accent-surface-default);
26
- --dsc-link-color-visited: var(--ds-global-purple-12);
27
- }
18
+ & svg {
19
+ vertical-align: middle; /* If adding SVG icon - align it to the text */
20
+ }
28
21
 
29
- .ds-link--neutral {
30
- --dsc-link-color: var(--ds-color-neutral-text-default);
31
- --dsc-link-color-hover: var(--ds-color-neutral-text-subtle);
32
- --dsc-link-color-active: var(--ds-color-neutral-text-subtle);
33
- --dsc-link-color-active-background: var(--ds-color-neutral-surface-default);
34
- --dsc-link-color-visited: var(--ds-global-purple-12);
35
- }
22
+ /**
23
+ * Colors
24
+ */
25
+ &[data-color="neutral"] {
26
+ --dsc-link-background--active: var(--ds-color-neutral-surface-default);
27
+ --dsc-link-color--active: var(--ds-color-neutral-text-subtle);
28
+ --dsc-link-color--hover: var(--ds-color-neutral-text-subtle);
29
+ --dsc-link-color--visited: var(--ds-global-purple-12);
30
+ --dsc-link-color: var(--ds-color-neutral-text-default);
31
+ }
36
32
 
37
- .ds-link:visited {
38
- color: var(--dsc-link-color-visited);
39
- text-decoration: none;
40
- }
33
+ /**
34
+ * States
35
+ */
36
+ &:visited {
37
+ color: var(--dsc-link-color--visited);
38
+ }
41
39
 
42
- .ds-link:hover {
43
- color: var(--dsc-link-color-hover);
44
- text-decoration-thickness: max(2px, 0.125rem, 0.12em);
45
- }
40
+ @media (hover: hover) and (pointer: fine) { /* Only use hover for non-touch devices to prevent sticky-hovering */
41
+ &:hover {
42
+ color: var(--dsc-link-color--hover);
43
+ text-decoration-thickness: var(--dsc-link-text-decoration-thickness--hover);
44
+ }
45
+ }
46
46
 
47
- .ds-link:focus-visible {
48
- color: var(--dsc-link-color-focus);
49
- background: var(--dsc-link-color-focus-background);
50
- outline: none;
51
- }
47
+ &:focus-visible {
48
+ background: var(--dsc-link-background--focus);
49
+ color: var(--dsc-link-color--focus);
50
+ }
52
51
 
53
- .ds-link:active {
54
- color: var(--dsc-link-color-active);
55
- background: var(--dsc-link-color-active-background);
56
- border-radius: min(0.25rem, var(--ds-border-radius-md));
57
- outline: none;
52
+ &:active {
53
+ background: var(--dsc-link-background--active);
54
+ color: var(--dsc-link-color--active);
55
+ }
58
56
  }
package/list.css CHANGED
@@ -1,22 +1,32 @@
1
1
  .ds-list {
2
+ --dsc-list-font-size: var(--ds-font-size-5);
2
3
  --dsc-list-padding-left: var(--ds-spacing-6);
4
+ --dsc-list-spacing: var(--ds-spacing-3);
5
+ --dsc-list-spacing-nested: var(--ds-spacing-2);
3
6
 
7
+ font-size: var(--dsc-list-font-size); /* Replace with composes paragraph-md */
8
+ line-height: var(--ds-line-height-md); /* Replace with composes paragraph-md */
9
+ margin: 0;
4
10
  padding-left: var(--dsc-list-padding-left);
5
- }
6
11
 
7
- .ds-list--sm {
8
- --dsc-list-padding-left: var(--ds-spacing-4);
9
- }
12
+ & > li + li { margin-top: var(--dsc-list-spacing) }
13
+ & > li > :is(ol, ul) { --dsc-list-spacing: var(--dsc-list-spacing-nested) } /* Shrink spacing a bit when nested */
10
14
 
11
- .ds-list--md,
12
- .ds-list--lg {
13
- --dsc-list-padding-left: var(--ds-spacing-6);
14
- }
15
+ /* Add zero-width space to fix VoiceOver: https://gerardkcohen.me/writing/2017/voiceover-list-style-type.html
16
+ * This can also be acheived by using role="list" + role="listitem", but is nice to solve with CSS avoiding cluttered HTML
17
+ */
18
+ & > li::before {
19
+ content: "\200B";
20
+ position: absolute;
21
+ }
15
22
 
16
- .ds-list__item {
17
- margin-bottom: var(--ds-spacing-2);
18
- }
23
+ &[data-size="sm"] {
24
+ --dsc-list-padding-left: var(--ds-spacing-4);
25
+ --dsc-list-font-size: var(--ds-font-size-4); /* Replace with composes paragraph-sm */
26
+ }
19
27
 
20
- .ds-list__item > .ds-list {
21
- margin-top: var(--ds-spacing-2);
28
+ &[data-size="lg"] {
29
+ --dsc-list-font-size: var(--ds-font-size-6); /* Replace with composes paragraph-sm */
30
+ --dsc-list-spacing: var(--ds-spacing-4);
31
+ }
22
32
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digdir/designsystemet-css",
3
- "version": "1.0.0-next.32",
3
+ "version": "1.0.0-next.33",
4
4
  "description": "CSS for Designsystemet",
5
5
  "author": "Designsystemet team",
6
6
  "repository": {
@@ -8,7 +8,10 @@
8
8
  "url": "git+https://github.com/digdir/designsystemet.git"
9
9
  },
10
10
  "license": "MIT",
11
- "main": "./dist/index.css",
11
+ "exports": {
12
+ ".": "./dist/index.css",
13
+ "./*": "./dist/*"
14
+ },
12
15
  "files": [
13
16
  "dist",
14
17
  "*.css"
package/pagination.css CHANGED
@@ -1,67 +1,48 @@
1
1
  .ds-pagination {
2
- --dsc-pagination-listitem-margin: var(--ds-spacing-4);
2
+ --dsc-pagination-gap: var(--ds-spacing-4);
3
3
  --dsc-pagination-ellipsis-width: var(--ds-sizing-12);
4
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
4
+ --dsc-pagination-chevron-size: var(--ds-sizing-6);
5
5
 
6
- list-style-type: none;
7
6
  display: flex;
8
- padding: 0;
7
+ flex-wrap: wrap;
8
+ gap: var(--dsc-pagination-gap);
9
+ list-style: none;
9
10
  margin: 0;
10
- position: relative;
11
- width: fit-content;
12
- }
13
-
14
- .ds-pagination--hidden {
15
- visibility: hidden;
16
- }
17
-
18
- .ds-pagination--sm {
19
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
20
- }
21
-
22
- .ds-pagination--md {
23
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
24
- }
25
-
26
- .ds-pagination--lg {
27
- --dsc-pagination-chevron-margin: var(--ds-spacing-2);
28
- }
29
-
30
- .ds-pagination li:first-child {
31
- margin-right: var(--dsc-pagination-chevron-margin);
32
- }
33
-
34
- .ds-pagination li:last-child {
35
- margin-left: var(--dsc-pagination-chevron-margin);
36
- }
37
-
38
- .ds-pagination__item {
39
- flex: 1;
40
- margin-right: var(--dsc-pagination-listitem-margin);
41
- }
42
-
43
- .ds-pagination--sm .ds-pagination__item {
44
- --dsc-pagination-listitem-margin: var(--ds-spacing-2);
45
- --dsc-pagination-ellipsis-width: var(--ds-sizing-10);
46
- }
47
-
48
- .ds-pagination--md .ds-pagination__item {
49
- --dsc-pagination-listitem-margin: var(--ds-spacing-4);
50
- --dsc-pagination-ellipsis-width: var(--ds-sizing-12);
51
- }
52
-
53
- .ds-pagination--lg .ds-pagination__item {
54
- --dsc-pagination-listitem-margin: var(--ds-spacing-6);
55
- --dsc-pagination-ellipsis-width: var(--ds-sizing-14);
56
- }
57
-
58
- .ds-pagination__item.ds-pagination--compact {
59
- --dsc-pagination-listitem-margin: var(--ds-spacing-0);
60
- --dsc-pagination-chevron-margin: var(--ds-spacing-1);
61
- }
11
+ padding: 0;
62
12
 
63
- .ds-pagination__ellipsis {
64
- margin-top: 0.5em;
65
- text-align: center;
66
- width: var(--dsc-pagination-ellipsis-width);
13
+ /* Style ellipsis When not containing interactive element */
14
+ & > li:not(:has(a, button)) {
15
+ align-items: center;
16
+ display: flex;
17
+ justify-content: center;
18
+ min-width: var(--dsc-pagination-ellipsis-width);
19
+ }
20
+
21
+ & > li:first-child > ::before,
22
+ & > li:last-child > ::after {
23
+ background: currentcolor;
24
+ content: '';
25
+ height: var(--dsc-pagination-chevron-size);
26
+ mask: center/contain no-repeat
27
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath d='M9.47 5.97a.75.75 0 0 1 1.06 0l5.5 5.5a.75.75 0 0 1 0 1.06l-5.5 5.5a.75.75 0 1 1-1.06-1.06L14.44 12 9.47 7.03a.75.75 0 0 1 0-1.06'/%3E%3C/svg%3E");
28
+ width: var(--dsc-pagination-chevron-size);
29
+ }
30
+
31
+ & > li:first-child > ::before {
32
+ rotate: 180deg;
33
+ }
34
+
35
+ &[data-size='sm'] {
36
+ --dsc-pagination-gap: var(--ds-spacing-2);
37
+ --dsc-pagination-ellipsis-width: var(--ds-sizing-10);
38
+ }
39
+
40
+ &[data-size='lg'] {
41
+ --dsc-pagination-gap: var(--ds-spacing-6);
42
+ --dsc-pagination-ellipsis-width: var(--ds-sizing-14);
43
+ }
44
+
45
+ &[data-compact] {
46
+ --dsc-pagination-gap: var(--ds-spacing-0);
47
+ }
67
48
  }
package/popover.css CHANGED
@@ -1,84 +1,76 @@
1
1
  .ds-popover {
2
- --dsc-popover-border: 1px solid;
2
+ --dsc-popover-arrow-size: var(--ds-spacing-2);
3
3
  --dsc-popover-background: var(--ds-color-neutral-background-default);
4
+ --dsc-popover-border-radius: min(1rem, var(--ds-border-radius-md));
5
+ --dsc-popover-border: 1px solid var(--ds-color-neutral-border-default);
4
6
  --dsc-popover-color: var(--ds-color-neutral-text-default);
5
- --dsc-popover-border-color: var(--ds-color-neutral-border-default);
6
- --dsc-popover-padding: var(--ds-spacing-3);
7
7
  --dsc-popover-max-width: 300px;
8
- --dsc-popover-border-radius: min(1rem, var(--ds-border-radius-md));
8
+ --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-4);
9
9
 
10
- z-index: 1500;
11
10
  background: var(--dsc-popover-background);
12
- color: var(--dsc-popover-color);
13
- padding: var(--dsc-popover-padding);
14
- border: var(--dsc-popover-border);
15
11
  border-radius: var(--dsc-popover-border-radius);
16
- border-color: var(--dsc-popover-border-color);
12
+ border: var(--dsc-popover-border);
13
+ box-sizing: border-box;
14
+ color: var(--dsc-popover-color);
15
+ inset: 0 auto auto 0;
17
16
  max-width: var(--dsc-popover-max-width);
18
- }
19
-
20
- .ds-popover--sm {
21
- --dsc-popover-padding: var(--ds-spacing-2) var(--ds-spacing-3);
22
- }
23
-
24
- .ds-popover--md {
25
- --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-4);
26
- }
17
+ overflow: visible;
18
+ padding: var(--dsc-popover-padding);
19
+ position: fixed;
27
20
 
28
- .ds-popover--lg {
29
- --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-5);
30
- }
21
+ &::before {
22
+ background: var(--dsc-popover-background);
23
+ border: inherit;
24
+ border-left-color: transparent;
25
+ border-top-color: transparent;
26
+ box-sizing: border-box;
27
+ content: '';
28
+ height: var(--dsc-popover-arrow-size);
29
+ left: var(--ds-popover-arrow-x);
30
+ position: absolute;
31
+ top: var(--ds-popover-arrow-y);
32
+ translate: -50% -50%;
33
+ width: var(--dsc-popover-arrow-size);
34
+ }
31
35
 
32
- .ds-popover--default {
33
- --dsc-popover-background: var(--ds-color-neutral-background-default);
34
- --dsc-popover-border-color: var(--ds-color-neutral-border-default);
35
- --dsc-popover-color: var(--ds-color-neutral-text-default);
36
- }
37
-
38
- .ds-popover--info {
39
- --dsc-popover-background: var(--ds-color-info-surface-default);
40
- --dsc-popover-border-color: var(--ds-color-info-border-default);
41
- --dsc-popover-color: var(--ds-color-info-text-default);
42
- }
36
+ &[data-size="sm"] { --dsc-popover-padding: var(--ds-spacing-2) var(--ds-spacing-3) }
37
+ &[data-size="lg"] { --dsc-popover-padding: var(--ds-spacing-3) var(--ds-spacing-5) }
43
38
 
44
- .ds-popover--warning {
45
- --dsc-popover-background: var(--ds-color-warning-surface-default);
46
- --dsc-popover-border-color: var(--ds-color-warning-border-default);
47
- --dsc-popover-color: var(--ds-color-warning-text-default);
48
- }
39
+ &[data-placement="top"]::before {
40
+ top: 100%;
41
+ rotate: 45deg;
42
+ }
49
43
 
50
- .ds-popover--danger {
51
- --dsc-popover-background: var(--ds-color-danger-surface-default);
52
- --dsc-popover-border-color: var(--ds-color-danger-border-default);
53
- --dsc-popover-color: var(--ds-color-danger-text-default);
54
- }
44
+ &[data-placement="left"]::before {
45
+ left: 100%;
46
+ rotate: -45deg;
47
+ }
55
48
 
56
- .ds-popover__arrow {
57
- position: absolute;
58
- background: var(--dsc-popover-background);
59
- transform: rotate(45deg);
60
- }
49
+ &[data-placement="right"]::before {
50
+ left: 0;
51
+ rotate: 135deg;
52
+ }
61
53
 
62
- .ds-popover__arrow.ds-popover__arrow--top {
63
- border-top: var(--dsc-popover-border);
64
- border-left: var(--dsc-popover-border);
65
- border-color: inherit;
66
- }
54
+ &[data-placement="bottom"]::before {
55
+ top: 0;
56
+ rotate: -135deg;
57
+ }
67
58
 
68
- .ds-popover__arrow.ds-popover__arrow--bottom {
69
- border-bottom: var(--dsc-popover-border);
70
- border-right: var(--dsc-popover-border);
71
- border-color: inherit;
72
- }
59
+ &[data-variant="info"] {
60
+ --dsc-popover-background: var(--ds-color-info-surface-default);
61
+ --dsc-popover-border: 1px solid var(--ds-color-info-border-default);
62
+ --dsc-popover-color: var(--ds-color-info-text-default);
63
+ }
73
64
 
74
- .ds-popover__arrow.ds-popover__arrow--right {
75
- border-top: var(--dsc-popover-border);
76
- border-right: var(--dsc-popover-border);
77
- border-color: inherit;
78
- }
65
+ &[data-variant="warning"] {
66
+ --dsc-popover-background: var(--ds-color-warning-surface-default);
67
+ --dsc-popover-border: 1px solid var(--ds-color-warning-border-default);
68
+ --dsc-popover-color: var(--ds-color-warning-text-default);
69
+ }
79
70
 
80
- .ds-popover__arrow.ds-popover__arrow--left {
81
- border-bottom: var(--dsc-popover-border);
82
- border-left: var(--dsc-popover-border);
83
- border-color: inherit;
71
+ &[data-variant="danger"] {
72
+ --dsc-popover-background: var(--ds-color-danger-surface-default);
73
+ --dsc-popover-border: 1px solid var(--ds-color-danger-border-default);
74
+ --dsc-popover-color: var(--ds-color-danger-text-default);
75
+ }
84
76
  }