Skip to content

Commit

Permalink
feat(theme): add print theme
Browse files Browse the repository at this point in the history
  • Loading branch information
EYHN committed Aug 21, 2024
1 parent 8f78eee commit ecef0cb
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
15 changes: 13 additions & 2 deletions packages/theme/src/index.css.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { globalStyle } from '@vanilla-extract/css';

import { darkCssVariables, lightCssVariables } from './index';
import {
darkCssVariables,
lightCssVariables,
printCssVariables,
} from './index';
import { darkCssVariablesV2, lightCssVariablesV2 } from './v2';

const combinedLightCssVariables = {
Expand All @@ -12,7 +16,6 @@ const combinedDarkCssVariables = {
...darkCssVariablesV2,
};


globalStyle(':root', {
vars: combinedLightCssVariables,
});
Expand All @@ -24,3 +27,11 @@ globalStyle('[data-theme="light"]', {
globalStyle('[data-theme="dark"]', {
vars: combinedDarkCssVariables,
});

globalStyle(':root', {
'@media': {
print: {
vars: printCssVariables,
},
},
});
14 changes: 13 additions & 1 deletion packages/theme/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export type AffineCssVariables = {
};

const basicFontFamily = `apple-system, BlinkMacSystemFont, 'Helvetica Neue', Tahoma, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji','Segoe UI Symbol', 'Noto Color Emoji'`;
const basicPrintFontFamily = `'Helvetica Neue', Tahoma, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji','Segoe UI Symbol', 'Noto Color Emoji'`;

export const baseTheme = {
// font
Expand Down Expand Up @@ -431,14 +432,25 @@ export const darkTheme = {
noteBackgroundWhite: 'rgba(0, 0, 0, 1)',
} satisfies Omit<AffineTheme, 'editorMode'>;

const createVariables = (theme: typeof lightTheme) => {
export const printTheme = {
fontFamily: `'Inter', 'Source Sans 3', Poppins, ${basicPrintFontFamily}`,
fontSerifFamily: `'Source Serif 4', 'Noto Serif' , serif, 'Cambria', ${basicPrintFontFamily}`,
fontMonoFamily: `'Source Code Pro', 'IBM Plex Mono', 'Roboto Mono','Noto Sans Mono', 'Noto Sans CJK', ${basicPrintFontFamily}`,
fontSansFamily: `'Inter', 'Source Sans 3', Poppins, ${basicPrintFontFamily}`,

fontNumberFamily: `'Roboto Mono', 'Noto Sans Mono', ${basicPrintFontFamily}`,
fontCodeFamily: `'IBM Plex Mono', 'Space Mono', Consolas, Menlo, Monaco, Courier, monospace, ${basicPrintFontFamily}`,
}

const createVariables = (theme: Partial<AffineTheme>) => {
return objectEntries(theme).reduce((variables, [key, value]) => {
return { ...variables, [themeToVar(key)]: value };
}, {} as AffineCssVariables);
};

export const lightCssVariables = createVariables(lightTheme);
export const darkCssVariables = createVariables(darkTheme);
export const printCssVariables = createVariables(printTheme);

/**
* Get AFFiNE css variable name type safely
Expand Down

0 comments on commit ecef0cb

Please sign in to comment.