Skip to content

Commit 6fcb444

Browse files
committed
refactor(accordion): module.css to /package css (digdir#1846)
1 parent 133360d commit 6fcb444

File tree

6 files changed

+44
-191
lines changed

6 files changed

+44
-191
lines changed

packages/css/accordion.css

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,19 @@
1212
border-radius: var(--fds-accordion-border-radius);
1313
}
1414

15-
/*
16-
.expandIcon {
15+
.accordion__expand-icon {
1716
border-radius: var(--fds-border_radius-interactive);
1817
}
1918

20-
.content {
19+
.accordion__content {
2120
padding: var(--fds-spacing-5, 1rem);
2221
overflow: hidden;
2322
text-overflow: ellipsis;
2423
}
2524

26-
.header {
25+
.accordion__header {
2726
margin: 0;
2827
}
29-
*/
3028

3129
.accordion__button {
3230
width: 100%;
@@ -46,93 +44,96 @@
4644
border-radius: var(--fds-accordion-border-radius);
4745
}
4846

49-
/*
50-
.item:focus-within {
47+
48+
.accordion__item:focus-within {
5149
position: relative;
5250
}
5351

54-
.item:where(.open) .accordionButton:hover+* .content {
52+
/*
53+
* I Think this is unused? The button has no siblings. accordion content has no border
54+
.accordion__item:where(.accordion__content--open) .accordion__button:hover+* .accordion__content {
5555
border-color: var(--fds-semantic-border-neutral-strong);
5656
}
57+
*/
5758

58-
.item:where(.open) .expandIcon {
59+
.accordion__item:where(.accordion__item--open) .accordion__expand-icon {
5960
transform: rotateZ(180deg);
6061
}
6162

62-
.neutral,
63-
.neutral .accordionButton {
63+
.accordion--neutral,
64+
.accordion--neutral .accordion__button {
6465
background-color: var(--fds-semantic-surface-neutral-default);
6566
}
6667

67-
.subtle,
68-
.subtle .accordionButton {
68+
.accordion--subtle,
69+
.accordion--subtle .accordion__button {
6970
background-color: var(--fds-semantic-surface-neutral-subtle);
7071
}
7172

72-
.first,
73-
.first .accordionButton {
73+
.accordion--first,
74+
.accordion--first .accordion__button {
7475
--fds-accordion-border-color: var(--fds-semantic-border-first-default);
7576

7677
background: var(--fds-semantic-surface-first-light);
7778
}
7879

79-
.second,
80-
.second .accordionButton {
80+
81+
.accordion--second,
82+
.accordion--second .accordion__button {
8183
--fds-accordion-border-color: var(--fds-semantic-border-second-default);
8284

8385
background: var(--fds-semantic-surface-second-light);
8486
}
8587

86-
.third,
87-
.third .accordionButton {
88+
89+
.accordion--third,
90+
.accordion--third .accordion__button {
8891
--fds-accordion-border-color: var(--fds-semantic-border-third-default);
8992

9093
background: var(--fds-semantic-surface-third-light);
9194
}
9295

93-
.first .item:where(.open) .accordionButton,
94-
.second .item:where(.open) .accordionButton,
95-
.third .item:where(.open) .accordionButton {
96+
.accordion--first .accordion__item:where(.accordion__item--open) .accordion__button,
97+
.accordion--second .accordion__item:where(.accordion__item--open) .accordion__button,
98+
.accordion--third .accordion__item:where(.accordion__item--open) .accordion__button {
9699
background-color: rgba(0 0 0 / 0.03);
97100
}
98101

99-
.neutral .item:where(.open) .accordionButton,
100-
.subtle .item:where(.open) .accordionButton {
102+
.accordion--neutral .accordion__item:where(.accordion__item--open) .accordion__button,
103+
.accordion--subtle .accordion__item:where(.accordion__item--open) .accordion__button {
101104
background-color: var(--fds-semantic-surface-action-first-no_fill-hover);
102105
}
103106

104-
.border .item:first-child .accordionButton {
107+
.accordion--border .accordion__item:first-child .accordion__button {
105108
border-top: 0;
106109
}
107110

108-
.first .item:not(:first-child) .accordionButton,
109-
.second .item:not(:first-child) .accordionButton,
110-
.third .item:not(:first-child) .accordionButton {
111+
.accordion--first .accordion__item:not(:first-child) .accordion__button,
112+
.accordion--second .accordion__item:not(:first-child) .accordion__button,
113+
.accordion--third .accordion__item:not(:first-child) .accordion__button {
111114
border-top: 1px solid var(--fds-semantic-surface-neutral-default);
112115
}
113116

114117
@media (hover: hover) and (pointer: fine) {
115-
.accordionButton:hover .expandIcon {
118+
.accordion__button:hover .accordion__expand-icon {
116119
background-color: rgba(0 0 0 / 0.1);
117120
}
118121

119-
.neutral .accordionButton:hover,
120-
.subtle .accordionButton:hover {
122+
.accordion--neutral .accordion__button:hover,
123+
.accordion--subtle .accordion__button:hover {
121124
background-color: var(--fds-semantic-surface-neutral-subtle-hover);
122125
}
123126

124-
.first .accordionButton:hover {
127+
.accordion--first .accordion__button:hover {
125128
background-color: var(--fds-semantic-surface-first-light-hover);
126129
}
127130

128-
.second .accordionButton:hover {
131+
.accordion--second .accordion__button:hover {
129132
background-color: var(--fds-semantic-surface-second-light-hover);
130133
}
131134

132-
.third .accordionButton:hover {
135+
.accordion--third .accordion__button:hover {
133136
background-color: var(--fds-semantic-surface-third-light-hover);
134137
}
135138
}
136-
137-
*/
138139
}

packages/react/src/components/Accordion/Accordion.module.css

Lines changed: 0 additions & 133 deletions
This file was deleted.

packages/react/src/components/Accordion/Accordion.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import type { ReactNode, HTMLAttributes } from 'react';
22
import { forwardRef } from 'react';
33
import cl from 'clsx';
44

5-
import classes from './Accordion.module.css';
6-
75
export type AccordionProps = {
86
/** Accordion background color */
97
color?: 'first' | 'second' | 'third' | 'neutral' | 'subtle';
@@ -19,10 +17,7 @@ export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
1917
className={cl(
2018
'accordion',
2119
border && 'accordion--border',
22-
classes[color],
23-
{
24-
[classes.border]: border,
25-
},
20+
color && `accordion--${color}`,
2621
className,
2722
)}
2823
ref={ref}

packages/react/src/components/Accordion/AccordionContent/AccordionContent.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { forwardRef, useContext } from 'react';
44

55
import { AnimateHeight } from '../../../utilities/AnimateHeight';
66
import { Paragraph } from '../../..';
7-
import classes from '../Accordion.module.css';
87
import { AccordionItemContext } from '../AccordionItem';
98

109
export type AccordionContentProps = {
@@ -36,7 +35,7 @@ export const AccordionContent = forwardRef<
3635
>
3736
<div
3837
ref={ref}
39-
className={cl(classes.content, className)}
38+
className={cl('accordion__content', className)}
4039
{...rest}
4140
>
4241
{children}

packages/react/src/components/Accordion/AccordionHeader/AccordionHeader.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import type { ReactNode, MouseEventHandler, HTMLAttributes } from 'react';
44
import { forwardRef, useContext } from 'react';
55

66
import { Paragraph, Heading } from '../..';
7-
import classes from '../Accordion.module.css';
87
import { AccordionItemContext } from '../AccordionItem';
98

109
export type AccordionHeaderProps = {
@@ -39,23 +38,19 @@ export const AccordionHeader = forwardRef<
3938
ref={ref}
4039
size='xsmall'
4140
level={level}
42-
className={cl(classes.header, className)}
41+
className={cl('accordion__header', className)}
4342
{...rest}
4443
>
4544
<button
4645
type='button'
47-
className={cl(
48-
'accordion__button',
49-
classes.accordionButton,
50-
`fds-focus`,
51-
)}
46+
className={cl('accordion__button', `fds-focus`)}
5247
onClick={handleClick}
5348
aria-expanded={context.open}
5449
aria-controls={context.contentId}
5550
>
5651
<ChevronDownIcon
5752
aria-hidden
58-
className={classes.expandIcon}
53+
className={cl('accordion__expand-icon')}
5954
fontSize={'1.5rem'}
6055
/>
6156
<Paragraph

packages/react/src/components/Accordion/AccordionItem/AccordionItem.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import cl from 'clsx';
22
import type { ReactNode, HTMLAttributes } from 'react';
33
import { createContext, forwardRef, useState, useId } from 'react';
44

5-
import classes from '../Accordion.module.css';
6-
75
export type AccordionItemProps = {
86
/**
97
* Controls open-state.
@@ -34,10 +32,8 @@ export const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(
3432
return (
3533
<div
3634
className={cl(
37-
classes.item,
38-
{
39-
[classes.open]: open ?? internalOpen,
40-
},
35+
'accordion__item',
36+
(open ?? internalOpen) && 'accordion__item--open',
4137
className,
4238
)}
4339
ref={ref}

0 commit comments

Comments
 (0)