Skip to content

Commit

Permalink
馃挬 More theme changes + new message component!
Browse files Browse the repository at this point in the history
  • Loading branch information
danieldelcore committed Aug 4, 2020
1 parent e703f0c commit 731b230
Show file tree
Hide file tree
Showing 12 changed files with 149 additions and 13 deletions.
34 changes: 34 additions & 0 deletions examples/0_Palette.tsx
Expand Up @@ -15,6 +15,7 @@ import Input from '@precursor/input';
import Image from '@precursor/image';
import Label from '@precursor/label';
import { Modal, ModalBody, ModalFooter, ModalHeader } from '@precursor/modal';
import Message from '@precursor/message';
import Panel from '@precursor/panel';
import Radio from '@precursor/radio';
import Select from '@precursor/select';
Expand Down Expand Up @@ -278,6 +279,39 @@ const BasicExample = () => {
</Text>
</Panel>
</Panel>
<Heading id="messages">Messages</Heading>
<Panel>
<Stack>
<Message>
<Text>
Hello <Emoji label="wave">馃憢</Emoji>,
here is some{' '}
<Text as="strong">
contextual information
</Text>
</Text>
</Message>
<Message status="success">
<Text>
<Text as="strong">Congratulations</Text>
, you did something right!
</Text>
</Message>
<Message status="warning">
<Text>
Be careful, something bad might happen{' '}
<Emoji label="worried face">馃槰</Emoji>
</Text>
</Message>
<Message status="error">
<Text>
<Text as="strong">Oh no</Text>,
something bad happened!{' '}
<Emoji label="sad face">馃槥</Emoji>
</Text>
</Message>
</Stack>
</Panel>
<Heading id="input">Input</Heading>
<Panel>
<Stack>
Expand Down
9 changes: 9 additions & 0 deletions fixtures/ThemeEditor.tsx
Expand Up @@ -4,6 +4,7 @@ import { jsx } from '@trousers/core';
import Label from '@precursor/label';
import Select from '@precursor/select';
import Input from '@precursor/input';
import Message from '@precursor/message';
import Heading from '@precursor/heading';
import Stack from '@precursor/stack';
import Toggle from '@precursor/toggle';
Expand Down Expand Up @@ -194,6 +195,14 @@ const renderOptionGroup = (
);
}

if (!schema) {
return (
<Message status="error">
Error: schema not found for property: {nestedKey}
</Message>
);
}

return (
<Fragment key={nestedKey}>
{renderOption(
Expand Down
4 changes: 4 additions & 0 deletions fixtures/themeSchema.ts
Expand Up @@ -54,6 +54,10 @@ const themeSchema: Record<keyof Theme, OptionType> = {
type: 'color',
options: Object.values(color.neutral),
},
info: {
type: 'color',
options: Object.values(color.info),
},
warning: {
type: 'color',
options: Object.values(color.warning),
Expand Down
1 change: 1 addition & 0 deletions packages/components/message/CHANGELOG.md
@@ -0,0 +1 @@
# @precursor/message
35 changes: 35 additions & 0 deletions packages/components/message/Message.tsx
@@ -0,0 +1,35 @@
/** @jsx jsx */
import { FC, ReactNode } from 'react';
import { jsx } from '@trousers/core';
import collector from '@trousers/collector';

import { Theme } from '@precursor/theme';

export interface MessageProps {
status?: 'error' | 'success' | 'warning';
children: ReactNode;
}

const styles = (status: MessageProps['status']) =>
collector<Theme>('message').element`
display: block;
padding: ${({ spacePreset }) => spacePreset.inset};
border-radius: ${({ radius }) => radius.m};
background-color: ${({ color }) => color.info.light};
color: ${({ color }) => color.info.base};
`.modifier(status === 'error')`
background-color: ${({ color }) => color.error.light}
color: ${({ color }) => color.error.base}
`.modifier(status === 'warning')`
background-color: ${({ color }: Theme) => color.warning.light}
color: ${({ color }: Theme) => color.warning.base}
`.modifier(status === 'success')`
background-color: ${({ color }: Theme) => color.success.light}
color: ${({ color }: Theme) => color.success.base}
`;

const Message: FC<MessageProps> = props => {
return <div css={styles(props.status)}>{props.children}</div>;
};

export default Message;
1 change: 1 addition & 0 deletions packages/components/message/index.ts
@@ -0,0 +1 @@
export { default, MessageProps } from './Message';
22 changes: 22 additions & 0 deletions packages/components/message/package.json
@@ -0,0 +1,22 @@
{
"name": "@precursor/message",
"version": "0.1.0",
"description": "message component",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"license": "MIT",
"dependencies": {
"@precursor/text": "^0.1.4",
"@precursor/theme": "^0.1.5",
"@trousers/collector": "^3.0.2",
"@trousers/core": "^3.0.2"
},
"devDependencies": {
"react": "^16.8.1"
},
"peerDependencies": {
"react": ">=16.8.0"
},
"repository": "https://github.com/danieldelcore/precursor/tree/master/packages/components/message"
}
17 changes: 17 additions & 0 deletions packages/components/message/tsconfig.json
@@ -0,0 +1,17 @@
{
"include": ["*.tsx", "*.ts"],
"extends": "../../../tsconfig.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": ".",
"baseUrl": "."
},
"references": [
{
"path": "../../theming/theme"
},
{
"path": "../../elements/text"
}
]
}
6 changes: 4 additions & 2 deletions packages/components/modal/package.json
Expand Up @@ -14,10 +14,12 @@
"@trousers/core": "^3.0.2"
},
"devDependencies": {
"react": "^16.8.1"
"react": "^16.8.1",
"react-dom": "^16.8.4"
},
"peerDependencies": {
"react": ">=16.8.0"
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
},
"repository": "https://github.com/danieldelcore/precursor/tree/master/packages/components/modal"
}
9 changes: 7 additions & 2 deletions packages/theming/theme/Theme.ts
Expand Up @@ -22,6 +22,11 @@ const theme = {
base: color.neutral[0],
dark: color.neutral[500],
},
info: {
light: color.info[100],
base: color.info[400],
dark: color.info[700],
},
warning: {
light: color.warning[100],
base: color.warning[400],
Expand Down Expand Up @@ -51,8 +56,8 @@ const theme = {
xxxl: space[800],
},
spacePreset: {
inset: space[400],
stack: space[400],
inset: space[300],
stack: space[300],
inline: space[200],
insetSquish: `${space[200]} ${space[400]}`,
stretchInset: `${space[400]} ${space[200]}`,
Expand Down
23 changes: 14 additions & 9 deletions packages/theming/tokens/tokens.ts
Expand Up @@ -49,20 +49,25 @@ export const color = {
400: secondary,
700: secondaryDarkest,
},
info: {
100: '#dcf2ff',
400: '#134f83',
700: '#134f83',
},
warning: {
100: '#f0574f',
400: '#E11900',
700: '#ba0b02',
100: '#fffac6',
400: '#7e7015',
700: '#7e7015',
},
error: {
100: '#ffca61',
400: '#FFC043',
700: '#cc8800',
100: '#fad6d6',
400: '#bb2525',
700: '#7c0404',
},
success: {
100: '#26ed8d',
400: '#08d472',
700: '#05A357',
100: '#d8ffd8',
400: '#137043',
700: '#137043',
},
neutral: {
0: `#ffffff`,
Expand Down
1 change: 1 addition & 0 deletions tsconfig.json
Expand Up @@ -54,6 +54,7 @@
{ "path": "packages/components/input" },
{ "path": "packages/components/label" },
{ "path": "packages/components/modal" },
{ "path": "packages/components/message" },
{ "path": "packages/components/overlay" },
{ "path": "packages/components/panel" },
{ "path": "packages/components/radio" },
Expand Down

0 comments on commit 731b230

Please sign in to comment.