Skip to content

Commit

Permalink
feat: New colors and typographic family (#27)
Browse files Browse the repository at this point in the history
* style: Add new font

* feat: Add fonts and minor changes to services

* feat: colors typography details

* test(avatar): update tests with the new icon
  • Loading branch information
puria authored Jan 26, 2024
1 parent 8fd96f9 commit 13f82ec
Show file tree
Hide file tree
Showing 15 changed files with 175 additions and 76 deletions.
3 changes: 2 additions & 1 deletion .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false
"useTabs": false,
"plugins": ["prettier-plugin-tailwindcss"]
}
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
"jest-cli": "^29.7.0",
"npm-run-all": "^4.1.5",
"postcss-import": "^16.0.0",
"prettier": "^3.2.4",
"prettier-plugin-tailwindcss": "^0.5.11",
"puppeteer": "21.7.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand Down
64 changes: 64 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion src/components/avatar/avatar.css
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
:host {
@apply inline-flex items-center justify-center relative overflow-hidden h-10 w-10 bg-accent rounded-full text-on-accent;
@apply inline-flex items-center justify-center relative overflow-hidden h-10 w-10 bg-accent rounded-full;
}

:host span {
@apply text-on-accent
}

:host([size="xs"]) svg,
Expand Down
9 changes: 7 additions & 2 deletions src/components/avatar/avatar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,13 @@ export class Avatar {
{initials ? (
<span class="font-medium uppercase">{initials}</span>
) : (
<svg class="absolute text-gray-300" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path>
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M14.0015 16.2796C11.9477 16.2795 9.68689 16.8564 8 18C6.31311 19.1436 5.28077 20.7992 4.5638 22.6777C4.30879 23.3422 4.85297 24 5.5793 24H22.4192C23.1478 24 23.6897 23.3422 23.437 22.6777C22.72 20.7992 21.6869 19.1436 20 18C18.3131 16.8564 16.0554 16.2795 14.0015 16.2796ZM19.0289 8.9125C19.0289 10.2154 18.4987 11.4649 17.5548 12.3862C16.6109 13.3074 15.3307 13.825 13.9959 13.825C12.661 13.825 11.3808 13.3074 10.4369 12.3862C9.49304 11.4649 8.96277 10.2154 8.96277 8.9125C8.96277 7.60962 9.49304 6.36011 10.4369 5.43884C11.3808 4.51756 12.661 4 13.9959 4C15.3307 4 16.6109 4.51756 17.5548 5.43884C18.4987 6.36011 19.0289 7.60962 19.0289 8.9125Z"
fill="#F8FAFE"
/>
</svg>
)}
</Host>
Expand Down
18 changes: 9 additions & 9 deletions src/components/avatar/test/avatar.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ describe('d-avatar', () => {
});
expect(page.root).toEqualHtml(`
<d-avatar role="figure" shape="round" size="m">
<mock:shadow-root>
<svg class="absolute text-gray-300" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path clip-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" fill-rule="evenodd"></path>
</svg>
<mock:shadow-root>
<svg fill="none" height="28" viewBox="0 0 28 28" width="28" xmlns="http://www.w3.org/2000/svg">
<path clip-rule="evenodd" d="M14.0015 16.2796C11.9477 16.2795 9.68689 16.8564 8 18C6.31311 19.1436 5.28077 20.7992 4.5638 22.6777C4.30879 23.3422 4.85297 24 5.5793 24H22.4192C23.1478 24 23.6897 23.3422 23.437 22.6777C22.72 20.7992 21.6869 19.1436 20 18C18.3131 16.8564 16.0554 16.2795 14.0015 16.2796ZM19.0289 8.9125C19.0289 10.2154 18.4987 11.4649 17.5548 12.3862C16.6109 13.3074 15.3307 13.825 13.9959 13.825C12.661 13.825 11.3808 13.3074 10.4369 12.3862C9.49304 11.4649 8.96277 10.2154 8.96277 8.9125C8.96277 7.60962 9.49304 6.36011 10.4369 5.43884C11.3808 4.51756 12.661 4 13.9959 4C15.3307 4 16.6109 4.51756 17.5548 5.43884C18.4987 6.36011 19.0289 7.60962 19.0289 8.9125Z" fill="#F8FAFE" fill-rule="evenodd"></path>
</svg>
</mock:shadow-root>
</d-avatar>
`);
Expand Down Expand Up @@ -41,11 +41,11 @@ describe('d-avatar', () => {
});
expect(root).toEqualHtml(`
<d-avatar aria-label="" name="" role="figure" shape="square" size="m">
<mock:shadow-root>
<svg class="absolute text-gray-300" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path clip-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" fill-rule="evenodd"></path>
</svg>
</mock:shadow-root>
<mock:shadow-root>
<svg fill="none" height="28" viewBox="0 0 28 28" width="28" xmlns="http://www.w3.org/2000/svg">
<path clip-rule="evenodd" d="M14.0015 16.2796C11.9477 16.2795 9.68689 16.8564 8 18C6.31311 19.1436 5.28077 20.7992 4.5638 22.6777C4.30879 23.3422 4.85297 24 5.5793 24H22.4192C23.1478 24 23.6897 23.3422 23.437 22.6777C22.72 20.7992 21.6869 19.1436 20 18C18.3131 16.8564 16.0554 16.2795 14.0015 16.2796ZM19.0289 8.9125C19.0289 10.2154 18.4987 11.4649 17.5548 12.3862C16.6109 13.3074 15.3307 13.825 13.9959 13.825C12.661 13.825 11.3808 13.3074 10.4369 12.3862C9.49304 11.4649 8.96277 10.2154 8.96277 8.9125C8.96277 7.60962 9.49304 6.36011 10.4369 5.43884C11.3808 4.51756 12.661 4 13.9959 4C15.3307 4 16.6109 4.51756 17.5548 5.43884C18.4987 6.36011 19.0289 7.60962 19.0289 8.9125Z" fill="#F8FAFE" fill-rule="evenodd"></path>
</svg>
</mock:shadow-root>
</d-avatar>
`);
});
Expand Down
19 changes: 8 additions & 11 deletions src/components/credential-card/d-credential-card.css
Original file line number Diff line number Diff line change
@@ -1,32 +1,29 @@
:host {
@apply w-full inline-flex flex-col items-start gap-2.5 px-5 py-5 rounded-lg bg-gradient-to-b from-tab to-slate-300;
/* background-image: url('data:image/png;base64,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'); */
/* background-size: cover;
background-repeat: no-repeat; */
@apply w-full inline-flex flex-col items-start gap-2.5 px-5 py-5 rounded-lg bg-primary;
}

.between {
@apply w-full flex justify-between items-start;
}

.heading {
@apply flex text-on-primary text-xl not-italic font-semibold items-center gap-2;
@apply flex text-xl not-italic font-semibold items-center gap-2;
}

.name {
@apply text-3xl not-italic font-semibold leading-[20.5px] tracking-[-0.5px];
}

.info {
@apply inline-flex flex-col items-start gap-2 min-h-32;
}

.name {
@apply text-on-primary text-xl not-italic font-semibold leading-[20.5px] tracking-[-0.5px];
}
.description {
@apply text-on-primary text-base not-italic font-medium leading-[20.5px] tracking-[-0.5px];
@apply text-xl not-italic font-medium leading-[20.5px] tracking-[-0.5px];
}

.labeled-text {
@apply flex flex-col gap-0.5 text-on-primary whitespace-nowrap text-xs not-italic leading-[130%] tracking-[-0.5px];
text-shadow: 0px 2px 1px rgba(0, 0, 0, 0.25);
@apply flex flex-col gap-0.5 whitespace-nowrap text-lg not-italic leading-[130%] tracking-[-0.5px];
}

.label {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type Story = StoryObj<Components.DCredentialService>;
export const Default: Story = {
args: {
name: 'Over 18',
description: 'This credential proves that you are over 18 years old',
description: 'Age Validation',
issuer: 'Italian Government',
},
parameters: {
Expand Down
12 changes: 8 additions & 4 deletions src/components/credential-service/d-credential-service.css
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
:host > div,
:host > a > div {
@apply w-full rounded-lg p-5 flex gap-5 bg-primary no-underline;
@apply w-full rounded-lg p-5 flex gap-5 bg-primary no-underline items-center;
}

.name {
@apply block overflow-hidden text-on-primary text-ellipsis whitespace-nowrap text-base not-italic font-bold leading-[20.5px] tracking-[-0.5px];
@apply block overflow-hidden text-ellipsis whitespace-nowrap not-italic font-bold leading-[20.5px] tracking-[-0.5px] pb-2 text-lg;
}

.issuer {
@apply block overflow-hidden text-on-primary-2 text-ellipsis text-xs not-italic font-normal leading-[normal] tracking-[-0.5px];
@apply block overflow-hidden text-on-alt text-ellipsis not-italic font-normal leading-[normal] tracking-[-0.5px];
}

.description {
@apply block overflow-hidden text-on-primary-2 text-ellipsis text-xs not-italic font-medium leading-[normal] tracking-[-0.5px];
@apply block overflow-hidden text-on-alt text-ellipsis not-italic font-medium leading-[normal] tracking-[-0.5px];
}

svg {
@apply w-6 h-6 fill-current stroke-on;
}
11 changes: 8 additions & 3 deletions src/components/credential-service/d-credential-service.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,17 @@ export class DCredentialService {
render() {
const content = (
<div>
<d-avatar name={this.name} src={this.logoSrc}></d-avatar>
<div class="info">
<d-avatar name={this.name} src={this.logoSrc} size="l"></d-avatar>
<div class="grow">
<span class="name">{this.name}</span>
<span class="issuer">{this.issuer}</span>
<span class="description">{this.description}</span>
<span class="issuer">{this.issuer}</span>
</div>
{this.href && (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
<path d="M3 12L21 12M21 12L12.5 20.5M21 12L12.5 3.5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</svg>
)}
</div>
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ describe('d-credential-service', () => {
<d-credential-service>
<mock:shadow-root>
<div>
<d-avatar></d-avatar>
<div class="info">
<d-avatar size="l"></d-avatar>
<div class="grow">
<span class="name"></span>
<span class="issuer"></span>
<span class="description"></span>
<span class="issuer"></span>
</div>
</div>
</mock:shadow-root>
Expand Down
17 changes: 9 additions & 8 deletions src/components/tokens/Colors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ import { Meta, ColorPalette, ColorItem } from '@storybook/blocks';
<Meta title="Colors" />

<ColorPalette>
<ColorItem title="--tab" subtitle="Used for the tab" colors={{ Light: '#BDC2CF', Dark: '#223360' }} />
<ColorItem title="--surface" subtitle="Used for the background of the pages" colors={{ Light: '#E9EBEF', Dark: '#4E5C80' }} />
<ColorItem title="--primary" subtitle="Used for the primary color" colors={{ Light: '#BDC2CF', Dark: '#223360' }} />
<ColorItem title="--on-primary" subtitle="Used for the on primary color" colors={{ Light: '#2D2D2D', Dark: '#F7FAFF' }} />
<ColorItem title="--on-primary-2" subtitle="Used for the on primary - 2 color" colors={{ Light: '#68686F', Dark: '#B0B0B9' }} />
<ColorItem title="--accent" subtitle="Used for the accent color" colors={{ Light: '#223360', Dark: '#DBD7CB' }} />
<ColorItem title="--on-accent" subtitle="Used for the on accent color" colors={{ Light: '#DBD7CB', Dark: '#223360' }} />
<ColorItem title="--status-bar" subtitle="Used for the status bar color" colors={{ Light: '#000000', Dark: '#FFFFFF' }} />
<ColorItem title="--surface" subtitle="Used for the background of the pages" colors={{ Light: '#E9EBEF', Dark: '#1F2433' }} />
<ColorItem title="--primary" subtitle="Used as the primary color" colors={{ Light: '#D2D7E5', Dark: '#253151' }} />
<ColorItem title="--accent" subtitle="Used for the accent color" colors={{ Light: '#223360', Dark: '#DFDDD7' }} />
<ColorItem title="--on-accent" subtitle="Used for the text over the accent color" colors={{ Light: '#DFDDD7', Dark: '#223360' }} />
<ColorItem title="--on" subtitle="Used for the text main color" colors={{ Light: '#2D2D2D', Dark: '#F7FAFF' }} />
<ColorItem title="--on-alt" subtitle="Used for textes alternative colors" colors={{ Light: '#5D5D65', Dark: '#C0C0CA' }} />
<ColorItem title="--success" subtitle="" colors={{ Light: '#279B48', Dark: '#4ECB71' }} />
<ColorItem title="--warning" subtitle="" colors={{ Light: '#E58600', Dark: '#FF9601' }} />
<ColorItem title="--error" subtitle="" colors={{ Light: '#EE342B', Dark: '#FF443B' }} />
</ColorPalette>
58 changes: 38 additions & 20 deletions src/global/global.css
Original file line number Diff line number Diff line change
@@ -1,38 +1,56 @@
/* gantari-latin-wght-normal */
@font-face {
font-family: 'Gantari Variable';
font-style: normal;
font-display: swap;
font-weight: 100 900;
src: url(https://cdn.jsdelivr.net/fontsource/fonts/gantari:vf@latest/latin-wght-normal.woff2) format('woff2-variations');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
:root {
--tab: #bdc2cf;
--surface: #e9ebef;
--primary: #bdc2cf;
--on-primary: #2d2d2d;
--on-primary-2: #68686f;
--primary: #d2d7e5;
--accent: #223360;
--on-accent: #dbd7cb;
--status-bar: #000000;
--on-accent: #dfddd7;
--on: #2d2d2d;
--on-alt: #5d5d65;
--success: #279b48;
--warning: #e58600;
--error: #ee342b;
}

.dark {
--tab: #223360;
--surface: #4e5c80;
--primary: #223360;
--on-primary: #f7faff;
--on-primary-2: #b0b0b9;
--accent: #dbd7cb;
--surface: #1f2433;
--primary: #253151;
--accent: #dfddd7;
--on-accent: #223360;
--status-bar: #ffffff;
--on: #f7faff;
--on-alt: #c0c0ca;
--success: #4ecb71;
--warning: #ff9601;
--error: #ff443b;
}

@media (prefers-color-scheme: dark) {
--tab: #223360;
--surface: #4e5c80;
--primary: #223360;
--on-primary: #f7faff;
--on-primary-2: #b0b0b9;
--accent: #dbd7cb;
--surface: #1f2433;
--primary: #253151;
--accent: #dfddd7;
--on-accent: #223360;
--status-bar: #ffffff;
--on: #f7faff;
--on-alt: #c0c0ca;
--success: #4ecb71;
--warning: #ff9601;
--error: #ff443b;
}
}

* {
@apply text-on;
}
2 changes: 2 additions & 0 deletions src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
</label>
<h1 class="text-3xl font-sans font-bold py-8">Test page</h1>
<d-avatar name="Fortis Fortuy"></d-avatar>
<d-avatar role="figure" shape="round" size="m"></d-avatar>
<d-avatar aria-label="" role="figure" shape="square" size="m"></d-avatar>
<d-credential-service name="Over 18" issuer="Dyne.org" description="Some words to explain the service"></d-credential-service>
</body>
</html>
Loading

0 comments on commit 13f82ec

Please sign in to comment.