Skip to content
Merged
Show file tree
Hide file tree
Changes from 76 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
2eb7c3c
update success subtle color value
javiert-okta Aug 22, 2025
5db974e
add icon components
javiert-okta Aug 22, 2025
390c5a2
refactor card components order
javiert-okta Aug 22, 2025
135e9a6
update styles for card component
javiert-okta Aug 22, 2025
996c30b
udpate toolbar button to include tooltip
javiert-okta Aug 22, 2025
96bbae1
remove background color
javiert-okta Aug 22, 2025
024fa3b
update jwt input
javiert-okta Aug 22, 2025
32f9d50
update debugger toolbar styles
javiert-okta Aug 22, 2025
59b050a
update font size
javiert-okta Aug 22, 2025
af1ec5b
add icons to toolbar components
javiert-okta Aug 22, 2025
078bfd2
update color values
javiert-okta Aug 29, 2025
833f4a4
change titles for decoded header and payload
javiert-okta Aug 29, 2025
f485c4b
update styles for token decoder signature component
javiert-okta Aug 29, 2025
a0d4b0c
update secret key input styles
javiert-okta Aug 29, 2025
4101083
update styles for jwt input headline
javiert-okta Aug 29, 2025
c10e64d
update styles for claims table
javiert-okta Aug 29, 2025
ecc5839
add bottom margin
javiert-okta Aug 29, 2025
4655953
add eye icons
javiert-okta Aug 29, 2025
88f1e38
update card tabs styling
javiert-okta Aug 29, 2025
5d66e8d
update styles for card component
javiert-okta Aug 29, 2025
5594a34
update styles for checkbox
javiert-okta Aug 29, 2025
93d3d1b
remove roboto font
javiert-okta Sep 10, 2025
641ada4
remove borders, add color to svg icons
javiert-okta Sep 10, 2025
0ff9668
change button icons positioning, udpate styles
javiert-okta Sep 10, 2025
784c436
remove background color
javiert-okta Sep 10, 2025
93a3d07
update styles for property tooltip
javiert-okta Sep 10, 2025
83bea5a
update global style variables values
javiert-okta Sep 10, 2025
682182f
update focus values
javiert-okta Sep 12, 2025
26f2bdd
update picker en message
javiert-okta Sep 12, 2025
0b202db
update token decoder styling
javiert-okta Sep 12, 2025
61c4d5e
update debugger picker styling and reorganize tags
javiert-okta Sep 12, 2025
79f7c8d
delete unused prop
javiert-okta Sep 15, 2025
2993e82
update focused and disabled styles
javiert-okta Sep 15, 2025
92148a7
Merge pull request #883 from jsonwebtoken/update-algorithm-picker
javiert-okta Sep 15, 2025
e442a80
add new encoding toggle switch component
javiert-okta Sep 16, 2025
cd270fc
update card styles and component to render toggle switch
javiert-okta Sep 16, 2025
f4624e3
comment footer
javiert-okta Sep 16, 2025
ff37381
format secret key input component
javiert-okta Sep 16, 2025
19565b7
update react control styles
javiert-okta Sep 17, 2025
deb9bfc
move pickers to card component
javiert-okta Sep 17, 2025
3f9d976
update debugger picker styling and options
javiert-okta Sep 17, 2025
dba55a9
update label styles
javiert-okta Sep 17, 2025
5a4868f
update alg picker container
javiert-okta Sep 17, 2025
c255d5e
update styling for signature messages
javiert-okta Sep 17, 2025
1f0c9a2
remove height
javiert-okta Sep 17, 2025
b966d37
Merge pull request #884 from jsonwebtoken/update-token-encoder-picker
javiert-okta Sep 17, 2025
afbf8cb
fix merge conflicts
javiert-okta Sep 23, 2025
58a4001
add data-no-padding attribute
javiert-okta Sep 24, 2025
ca3353d
fix card styles
javiert-okta Sep 24, 2025
92d74fe
update padding value
javiert-okta Sep 24, 2025
a054985
delete comment
javiert-okta Sep 24, 2025
21ba061
update toggle switch logic and styles
javiert-okta Sep 24, 2025
e2ee558
add heading and update styles
javiert-okta Sep 24, 2025
931c82d
update en dictionary entries
javiert-okta Sep 24, 2025
51867df
update global values
javiert-okta Sep 24, 2025
09ffa20
add headers to token encoder cards
javiert-okta Sep 24, 2025
cd274ab
delete unused component
javiert-okta Sep 24, 2025
b1529d8
add headline classname
javiert-okta Sep 25, 2025
45211a2
add styles for heading container
javiert-okta Sep 25, 2025
686d4e4
fix row-gap value
javiert-okta Sep 25, 2025
a2c53e7
fix button icon styling
javiert-okta Sep 25, 2025
863fdf8
fix picker styles
javiert-okta Sep 25, 2025
68c44ea
increase font size
javiert-okta Sep 25, 2025
f1471cb
increase padding
javiert-okta Sep 25, 2025
2824a48
align items to center
javiert-okta Sep 25, 2025
df05d98
fix styles for encoder picker
javiert-okta Sep 25, 2025
39dad3f
add picker to token encoder component
javiert-okta Sep 25, 2025
84350b5
add new color to light theme
javiert-okta Sep 25, 2025
600cbdc
fix toggle switch styles
javiert-okta Sep 25, 2025
7f547b4
delete no padding styles
javiert-okta Oct 2, 2025
c40823f
remove padding
javiert-okta Oct 2, 2025
5e791f7
add none algorithm option
javiert-okta Oct 2, 2025
4a2abf8
decrease padding
javiert-okta Oct 2, 2025
ec01c9e
update color for selected option in picker
javiert-okta Oct 2, 2025
4096e62
fix padding option
javiert-okta Oct 2, 2025
da0fd12
Merge branch 'ui-redesign' of https://github.com/jsonwebtoken/jsonweb…
javiert-okta Oct 2, 2025
38d521d
fix merge conflicts
javiert-okta Oct 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
.span,
.p,
.code {
font-size: 0.75rem;
font-size: .875rem;
line-height: 1.125rem;
}

Expand Down
28 changes: 17 additions & 11 deletions src/features/common/components/card-tabs/card-tabs.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,16 +129,20 @@ const CardTabs: React.FC<CardTabsProps> = ({
<span className={styles.cardTab__title__compact}>
{compactTitle}
</span>
{activeCard.slots?.toolbar && (
<div className={styles.cardTabs__actionButtons}>
<div
className={styles.cardTabs__tooltipContainer}
>
{activeCard.slots.toolbar}
</div>
</div>
)}
</Tab>
</React.Fragment>
);
})}
</TabList>
{activeCard.slots?.toolbar && (
<div className={styles.cardTabs__actionButtons}>
{activeCard.slots.toolbar}
</div>
)}
</>
{cards.map((card) => {
return (
Expand Down Expand Up @@ -181,7 +185,7 @@ const CardTabs: React.FC<CardTabsProps> = ({
onSelectionChange={(e) => {
handleActiveCardChange(e.toString());
}}
className={clsx(MonoFont.className, styles.cardTabs)}
className={styles.cardTabs}
>
<>
<TabList className={styles.cardTabs__tabList}>
Expand All @@ -197,16 +201,18 @@ const CardTabs: React.FC<CardTabsProps> = ({
<span className={styles.cardTab__title__compact}>
{compactTitle}
</span>
{activeCard.slots?.toolbar && (
<div className={styles.cardTabs__actionButtons}>
<div className={styles.cardTabs__tooltipContainer}>
{activeCard.slots.toolbar}
</div>
</div>
)}
</Tab>
</React.Fragment>
);
})}
</TabList>
{activeCard.slots?.toolbar && (
<div className={styles.cardTabs__actionButtons}>
{activeCard.slots.toolbar}
</div>
)}
</>
{cards.map((card) => {
return (
Expand Down
99 changes: 52 additions & 47 deletions src/features/common/components/card-tabs/card-tabs.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,42 @@
width: 100%;
max-height: fit-content;
flex-direction: column;
row-gap: 0.5rem;
row-gap: 1rem;

cursor: default;
}

.cardTabs__title {
grid-column: 1 / -1;
grid-column: 1/-1;
display: flex;
align-items: center;
gap: 0.25rem;
text-transform: uppercase;
gap: .25rem;
color: var(--color_fg_default);
font-size: 0.875rem;
line-height: 1.375rem;
font-weight: 500;
letter-spacing: 0.24px;
margin-right: 8px;
font-size: 1rem;
line-height: 1.15rem;
font-weight: 700;
letter-spacing: -.1px;
}

.cardTabs {
position: relative;
grid-column: span 6;
display: flex;
height: 100%;
width: 100%;
flex-direction: column;
border-radius: 0.5rem;
border: 1px solid var(--color_border_bold);
background: var(--color_bg_layer_alternate);
overflow: hidden;
grid-column: span 6;
display: flex;
flex-direction: column;
border-radius: 1rem;
border: .5px solid var(--color_border_default);
background: var(--color_bg_layer_alternate-bold);
letter-spacing: -.1px;
gap: .25rem;
}

$cardTabs__tabList__height: 2.5rem;

.cardTabs__tabList {
position: relative;
display: flex;
border-bottom: 1px solid var(--color_border_bold);
height: $cardTabs__tabList__height;
flex-shrink: 0;
position: relative;
display: flex;
height: 2.5rem;
padding: .5rem;
gap: .25rem;
}

.cardTabs__title__container {
Expand All @@ -56,23 +52,21 @@ $cardTabs__tabList__height: 2.5rem;
}

.cardTab__title {
position: relative;
display: flex;
align-items: center;
gap: 0.25rem;
text-transform: uppercase;
padding: 0.5rem 0.75rem;
border-bottom: 0.125rem solid transparent;
color: var(--color_fg_default);
font-size: 0.75rem;
line-height: 1.125rem;
font-weight: 500;
letter-spacing: 0.24px;
cursor: pointer;
display: flex;
align-items: center;
gap: .25rem;
border-radius: .5rem;
padding: 0 .5rem;
color: var(--color_fg_default);
font-size: .875rem;
line-height: 1.125rem;
font-weight: 500;
letter-spacing: -.1px;
cursor: pointer;

&[data-selected="true"] {
color: var(--color_fg_selected);
border-bottom: 0.125rem solid var(--color_border_selected);
background-color: var(--color_bg_layer);
box-shadow: 0 0 0 1px rgba(0,0,0,.04),0 1px 1px -.5px rgba(0,0,0,.04),inset 0 0 0 1px rgba(0,0,0,.04);
}

&[data-focus-visible]:after {
Expand All @@ -86,6 +80,7 @@ $cardTabs__tabList__height: 2.5rem;

.cardTab__title__full {
display: none;
font-weight: 500;

@media #{$breakpoint-dimension-sm} {
display: flex;
Expand All @@ -99,14 +94,24 @@ $cardTabs__tabList__height: 2.5rem;
}

.cardTabs__actionButtons {
position: absolute;
right: 0.75rem;
top: 0;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
height: $cardTabs__tabList__height;
position: absolute;
right: 0.75rem;
top: 50%;
transform: translateY(-50%);
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}

.cardTabs__tooltipContainer {
position: relative;
display: inline-block;
&:hover {
.button__tooltip {
opacity: 1;
}
}
}

.cardTabs__body {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ import { MonoFont } from "@/libs/theme/fonts";
export interface CardToolbarButtonComponentProps
extends AriaButtonOptions<"span"> {
variant: "standard" | "icon";
tooltipText?: string;
}

export const CardToolbarButtonComponent: React.FC<
PropsWithChildren<CardToolbarButtonComponentProps>
> = (props) => {
const { variant, children } = props;
const { variant, tooltipText, children } = props;

const ref = useRef<HTMLButtonElement | null>(null);

Expand All @@ -22,20 +23,25 @@ export const CardToolbarButtonComponent: React.FC<
elementType: "span",
preventFocusOnPress: true,
},
ref,
ref
);

return (
<button
{...buttonProps}
type="button"
className={clsx(
variant === "icon" ? styles.button__icon : styles.button__standard,
MonoFont.className,
<div className={styles.button__tooltipContainer}>
<button
{...buttonProps}
type="button"
className={clsx(
variant === "icon" ? styles.button__icon : styles.button__standard,
MonoFont.className
)}
data-style="compact"
>
{children}
</button>
{tooltipText && (
<span className={styles.button__tooltip}>{tooltipText}</span>
)}
data-style="compact"
>
{children}
</button>
</div>
);
};
Original file line number Diff line number Diff line change
@@ -1,37 +1,56 @@
.button__tooltipContainer {
position: relative;
display: inline-block;
&:hover {
.button__tooltip {
opacity: 1;
}
}
}
Comment on lines +1 to +9
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent indentation here as well

.button__standard {
gap: 0.75rem;
border-radius: 0.25rem;
border: 1px solid var(--color_border_button);
gap: .75rem;
border-radius: .5rem;
color: var(--color_fg_on_button_subtle);
font-variant-numeric: slashed-zero;
font-feature-settings:
"clig" off,
"liga" off;
z-index: 2;
background-color: transparent;
text-transform: uppercase;
cursor: pointer;
letter-spacing: 0.2px;
padding: .75rem;
letter-spacing: .2px;
appearance: none;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid transparent;
transition: all .2s ease-out;
width: 2rem;
height: 2rem;
font-size: .875rem;
line-height: 1.375rem;

&[aria-disabled="true"] {
opacity: 0.48;
cursor: not-allowed;
}

&:hover {
background-color: var(--color_bg_layer);
border: 1px solid var(--color_border_default);
transition: all .2s ease-out;
}

padding: 0 0.75rem;
width: 5rem;
height: 2rem;
font-size: 0.875rem;
line-height: 1.375rem;

&[data-style="compact"] {
padding: 0.125rem 0.375rem;
width: unset;
height: unset;
font-size: 0.75rem;
line-height: 1.25rem;
padding: .25rem;
width: 2rem;
height: 2rem;
font-size: .8125rem;
line-height: 1.35;
}

svg {
Expand All @@ -46,6 +65,25 @@
}
}

.button__tooltip {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
padding: 4px 8px;
color: var(--color_fg_bold);
background-color: var(--color_bg_layer);
border: 1px solid var(--color_border_default);
border-radius: .5rem;
font-size: .75rem;
white-space: nowrap;
opacity: 0;
pointer-events: none;
transition: opacity .2s ease-in-out;
box-shadow: 0 2px 4px rgba(0,0,0,.1);
z-index: 1000;
}

.button__icon {
gap: 0.75rem;
border-radius: 0.25rem;
Expand All @@ -72,10 +110,9 @@
}

&:hover {
background-color: var(--color_bg_layer_alternate-bold);
svg {
stroke: var(--color_fg_selected);
}
background-color: var(--color_bg_layer);
border: 1px solid var(--color_border_default);
transition: all .2s ease-out;
}

&:focus-visible {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
CardToolbarButtonComponent,
CardToolbarButtonComponentProps,
} from "@/features/common/components/card-toolbar-button/card-toolbar-button.component";
import { ClearIcon } from "../../icons/clear/clear-icon";

interface CardToolbarClearButtonComponentProps
extends Omit<CardToolbarButtonComponentProps, "variant"> {
Expand All @@ -16,8 +17,12 @@ export const CardToolbarClearButtonComponent: React.FC<
const dictionary = getButtonsUiDictionary(languageCode);

return (
<CardToolbarButtonComponent {...props} variant="standard">
{dictionary.clearButton.label}
<CardToolbarButtonComponent
{...props}
variant="standard"
tooltipText={dictionary.clearButton.label}
>
<ClearIcon />
</CardToolbarButtonComponent>
);
};
Loading