Skip to content

Commit 02be4a6

Browse files
committed
fix: Updated NavigationButton styling
1 parent 8c732db commit 02be4a6

File tree

6 files changed

+59
-46
lines changed

6 files changed

+59
-46
lines changed

packages/core/src/components/navigation-button/NavigationButton.tsx

Lines changed: 40 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import { useQuickForm } from '../../state/QuickFormContext';
44
import { ArrowUpIcon, ArrowDownIcon } from '../icons';
55
import { quickformtokens } from '../../style/quickFormTokensDefinition';
6-
import { makeStyles, mergeClasses } from "@griffel/react";
6+
import { makeStyles, mergeClasses, shorthands } from "@griffel/react";
77

88
type NavigationButtonProps = {
99
className?: string;
@@ -12,18 +12,41 @@ type NavigationButtonProps = {
1212

1313
const useNavigationStyles = makeStyles({
1414
button: {
15+
width: '50px',
16+
height: '100%',
17+
cursor: 'pointer',
18+
...shorthands.borderWidth('1px'),
19+
...shorthands.borderColor(quickformtokens.primary),
1520
':hover': {
16-
stroke: quickformtokens.onBackground
21+
stroke: quickformtokens.onPrimary,
22+
backgroundColor: quickformtokens.primary
1723
},
18-
stroke: quickformtokens.onBackground
1924
},
2025
icon: {
21-
26+
stroke: quickformtokens.primary,
27+
':hover': {
28+
stroke: quickformtokens.onPrimary,
29+
backgroundColor: quickformtokens.primary
30+
},
2231
},
2332
disabled: {
24-
stroke: quickformtokens.onBackground
25-
}
33+
':hover': {
34+
stroke: quickformtokens.primary,
35+
backgroundColor: 'transparent'
36+
},
37+
},
38+
left: {
39+
borderTopLeftRadius: '10px',
40+
borderBottomLeftRadius: '10px',
41+
...shorthands.borderRight('none')
42+
},
43+
right: {
44+
borderTopRightRadius: '10px',
45+
borderBottomRightRadius: '10px',
46+
...shorthands.borderLeft('none')
47+
},
2648
});
49+
2750
export const NavigationButton: React.FC<NavigationButtonProps> = ({ className, style }) => {
2851
const styles = useNavigationStyles();
2952

@@ -34,59 +57,33 @@ export const NavigationButton: React.FC<NavigationButtonProps> = ({ className, s
3457

3558
const disablePrevBtn = !state.hasPrevSlide;
3659
const prevLabel = disablePrevBtn ? "No previous slide" : "Go to previous";
37-
const rightBtnStyling = {
38-
backgroundColor: quickformtokens.background,
39-
...right,
40-
...slideNavigationButton,
41-
}
4260

4361
const disableNextBtn = !state.hasNextSlide;
4462
const nextLabel = disableNextBtn ? "No next slide" : "Go to next";
45-
const leftBtnStyling = {
46-
backgroundColor: quickformtokens.background,
47-
...left,
48-
...slideNavigationButton,
49-
}
5063

5164
return (
5265
<div className={className} style={style}>
53-
<label title={prevLabel} style={leftBtnStyling} >
54-
<button className={styles.button}
66+
<label title={prevLabel} >
67+
<button
68+
aria-label='Go to previous'
69+
className={mergeClasses(styles.button, styles.left, disablePrevBtn && styles.disabled)}
5570
disabled={disablePrevBtn}
56-
style={leftBtnStyling}
5771
onClick={goToPrevSlide}
5872
>
59-
<ArrowUpIcon className={mergeClasses(styles.icon, disablePrevBtn && styles.disabled)} />
73+
<ArrowDownIcon className={mergeClasses(styles.icon, disablePrevBtn && styles.disabled)} />
6074
</button>
6175
</label>
6276

63-
<label title={nextLabel} style={rightBtnStyling}>
64-
<button className={styles.button}
65-
disabled={disableNextBtn}
77+
<label title={nextLabel} >
78+
<button
6679
aria-label='Go to next'
67-
style={rightBtnStyling}
80+
className={mergeClasses(styles.button, styles.right, disableNextBtn && styles.disabled)}
81+
disabled={disableNextBtn}
6882
onClick={goToNextSlide}
6983
>
70-
<ArrowDownIcon className={mergeClasses(styles.icon, disableNextBtn && styles.disabled)} />
84+
<ArrowUpIcon className={mergeClasses(styles.icon, disableNextBtn && styles.disabled)} />
7185
</button>
7286
</label>
7387
</div >
7488
);
75-
}
76-
77-
const slideNavigationButton: React.CSSProperties = {
78-
width: '50px',
79-
height: '100%',
80-
cursor: 'pointer',
81-
borderWidth: '1px'
82-
};
83-
const left: React.CSSProperties = {
84-
borderTopLeftRadius: '10px',
85-
borderBottomLeftRadius: '10px',
86-
borderRight: 'none'
87-
};
88-
const right: React.CSSProperties = {
89-
borderTopRightRadius: '10px',
90-
borderBottomRightRadius: '10px',
91-
borderLeft: 'none'
92-
};
89+
}

packages/core/src/components/question/Question.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ type QuestionProps = {
1212
}
1313

1414
const questionStyling: React.CSSProperties = {
15+
marginTop: quickformtokens.questionTopMargin,
1516
maxWidth: '72rem',
1617
transition: "transform 0.3s ease-out",
1718
minHeight: '100px',
18-
color: quickformtokens.onSurface
19+
color: quickformtokens.onSurface,
20+
borderRadius: quickformtokens.questionBorderRadius,
21+
padding: quickformtokens.questionPadding
1922
}
2023

2124
export const Question: React.FC<QuestionProps> = ({ model, style }) => {

packages/core/src/style/QuickFormTokensDefinition.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ type QuickFormTokensBase = {
4646
questionInputFontSize: FontSize,
4747

4848
/* Structural properties */
49+
questionTopMargin: string;
50+
questionBorderRadius: string;
51+
questionPadding: string;
4952
questionInputGap: Gap,
5053
gap1: Gap,
5154
gap2: Gap,

packages/core/src/style/defaultQuickFormTokens.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const defaultQuickFormTokens: QuickFormTokens = {
4343
onSecondary: '#000000',
4444

4545
fontFamily: 'var(--chivo), Monaco, Consolas',
46-
headlineFontSize:'2rem',
46+
headlineFontSize: '2rem',
4747
paragraphFontSize: '1.3rem',
4848
paragraphMobileFontSize: '1.9rem',
4949
btnFontSize: '2rem',
@@ -58,6 +58,9 @@ export const defaultQuickFormTokens: QuickFormTokens = {
5858
questionInputGap: "3.6rem",
5959
questionPlaceholderColor: 'color-mix(in srgb, var(--on-surface) 80%, black)',
6060

61+
questionTopMargin: '15px',
62+
questionBorderRadius: '15px',
63+
questionPadding: '10px',
6164
gap1: '0.5rem',
6265
gap2: '1rem',
6366
gap4: '2rem',

packages/core/src/style/kbaQuickFormTokens.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ export const kbaQuickFormTokens: QuickFormTokens = {
6060
questionInputGap: "1.5rem",
6161
questionPlaceholderColor: '#757575',
6262

63+
questionTopMargin: '15px',
64+
questionBorderRadius: '15px',
65+
questionPadding: '10px',
6366
gap1: '0.5rem',
6467
gap2: '1rem',
6568
gap4: '2rem',

packages/playground/src/App.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22
import { QuickFormDefinition } from '../../core/src/model';
33
import testdata from "./data/allInputControlsMultipleSlidesTest2.json";
44
import { QuickFormProvider } from '../../core/src/state';
5-
import { QuickForm } from '../../core/src/components';
5+
import { NavigationButton, QuickForm } from '../../core/src/components';
66
import "./components/buttons-input/ButtonsInput";
77
import "./components/checkbox-input/CheckboxInput";
88
import "./components/radio-input/RadioInput";
@@ -13,6 +13,10 @@ export const App = () => {
1313
<div style={containerStyling}>
1414
<QuickFormProvider definition={testdata as QuickFormDefinition} payload={{}} >
1515
<QuickForm />
16+
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
17+
18+
<NavigationButton />
19+
</div>
1620
</QuickFormProvider>
1721
</div>
1822
);

0 commit comments

Comments
 (0)