ExpandButton
Lar oss presentere innhold av lavere prioritet, på liten plass.
Kom i gang
Installer
npm i @fremtind/jkl-expand-button-react
Bruk
import { ExpandButton } from "@fremtind/jkl-expand-button-react";// Importer stilark via JavaScript med CSS-loader.import "@fremtind/jkl-expand-button/expand-button.min.css";// Ekspanderknappen bruker icons-pakka for å animere pilaimport "@fremtind/jkl-icons/icons.min.css";// Eller importer stilark via SCSS.@use "@fremtind/jkl-expand-button/expand-button";@use "@fremtind/jkl-icons/icons";
React
Live demo
ExpandButton
Visning
const [isExpanded, setIsExpanded] = React.useState(false);return (<ExpandSectiontitle={isExpanded ? "Skjul seksjonen igjen" : "Vis den skjulte seksjonen"}onClick={(e, expanded) => {setIsExpanded(expanded);}}><p className="jkl-heading-4 jkl-spacing-xl--bottom">Skjult seksjon</p><p className="jkl-spacing-l--bottom">Her kommer det masse informasjon som er relevant, men ikke så relevant atvi alltid vil vise det.</p><p className="jkl-spacing-l--bottom">Vi kunne kanskje brukt en Accordion, men vi har ikke <em>flere</em> tingvi vil strukturere på denne måten. Det ser litt rart ut med ettAccordionItem, så da bruker vi heller en ExpandButton</p></ExpandSection>);
Andre fontstørrelser
ExpandButton
arver størrelsen sin fra omgivelsene. Om du ønsker kan du sette en annen fontstørrelse, enten med en egen klasse, eller med en av utility-klassene i Jøkul.
<ExpandButtonaria-controls={expandedContentId}id={expandButtonId}className="jkl-heading-1"expandDirection="down"isExpanded={isExpanded}onClick={onClick}>{isExpanded ? "Skjul seksjonen igjen" : "Vis den skjulte seksjonen"}</ExpandButton>;
Separat knapp og innhold
Noen ganger ønsker man å vise annet innhold mellom knappen og innholdet den skjuler og viser. Eksempelet under viser hvordan du kan løse dette.
const [isExpanded, setIsExpanded] = useState(false);const [elementRef] = useAnimatedHeight < HTMLDivElement > isExpanded;const expandButtonId = "jkl-example-expand-button";const expandedContentId = "jkl-example-expand-content";const onClick = () => {setIsExpanded(!isExpanded);};return (<div><p className="jkl-spacing-l--bottom">Noen ganger trenger vi å gi brukerne som ønsker det litt mer informasjon.</p><ExpandButtonaria-controls={expandedContentId}id={expandButtonId}className="jkl-spacing-l--bottom"expandDirection={expandDirection}isExpanded={isExpanded}onClick={onClick}>{isExpanded ? "Skjul seksjonen igjen" : "Vis den skjulte seksjonen"}</ExpandButton><p className="jkl-spacing-l--bottom">Jeg er ikke styrt av ExpandButton. Jeg illustrerer muligheten for åkontrollere deler av siden som ikke er direkte under ExpandButton.</p><divref={elementRef}aria-labelledby={expandButtonId}id={expandedContentId}role="group"hidden={!isExpanded}className="jkl-expand-section__content-wrapper"><div className="jkl-expand-section__content"><p className="jkl-heading-4 jkl-spacing-xl--bottom">Skjult seksjon</p><p className="jkl-spacing-l--bottom">For at dette skal fungere på en god måte må man huske på{" "}<code>aria-controls</code>. Denne komponenten kan være nyttig i foreksempel ekspanderbare tabellrader.</p></div></div></div>);
React API
Her finner du en oversikt over props på komponentene i pakken.