diff --git a/packages/canon/css/components.css b/packages/canon/css/components.css index bc473d2006..40a45b34cc 100644 --- a/packages/canon/css/components.css +++ b/packages/canon/css/components.css @@ -404,21 +404,21 @@ height: 1.5rem; } -.canon-FieldRoot { +.canon-TextField { font-family: var(--canon-font-regular); flex-direction: column; width: 100%; display: flex; } -.canon-FieldLabel { +.canon-TextField--label { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-primary); margin-bottom: var(--canon-space-1_5); } -.canon-FieldDescription { +.canon-TextField--description { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-secondary); @@ -426,7 +426,7 @@ margin: 0; } -.canon-FieldError { +.canon-TextField--error { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-danger); @@ -434,7 +434,7 @@ margin: 0; } -.canon-Input { +.canon-TextField--input { border-radius: var(--canon-radius-3); border: 1px solid var(--canon-border); padding: 0 var(--canon-space-4); @@ -447,38 +447,45 @@ transition: border-color .2s ease-in-out, outline-color .2s ease-in-out; } -.canon-Input::placeholder { +.canon-TextField--input::placeholder { color: var(--canon-fg-secondary); } -.canon-Input:hover { +.canon-TextField--input:hover { border-color: var(--canon-border-hover); } -.canon-Input:focus-visible { +.canon-TextField--input:focus-visible { outline-color: var(--canon-border-pressed); border-color: var(--canon-border-pressed); outline-width: 0; } -.canon-Input[data-invalid] { +.canon-TextField--input[data-invalid] { border-color: var(--canon-fg-danger); } -.canon-Input[data-disabled] { +.canon-TextField--input[data-disabled] { opacity: .5; cursor: not-allowed; border: 1px solid var(--canon-border-disabled); } -.canon-Input--size-small { +.canon-TextField--input-size-small { height: 2rem; } -.canon-Input--size-medium { +.canon-TextField--input-size-medium { height: 2.5rem; } +.canon-TextField--required { + color: var(--canon-fg-secondary); + font-size: var(--canon-font-size-2); + font-weight: var(--canon-font-weight-regular); + margin-left: var(--canon-space-1); +} + .canon-MenuPositioner { outline: 0; } diff --git a/packages/canon/css/styles.css b/packages/canon/css/styles.css index b5093e217c..66795e1a59 100644 --- a/packages/canon/css/styles.css +++ b/packages/canon/css/styles.css @@ -9610,21 +9610,21 @@ height: 1.5rem; } -.canon-FieldRoot { +.canon-TextField { font-family: var(--canon-font-regular); flex-direction: column; width: 100%; display: flex; } -.canon-FieldLabel { +.canon-TextField--label { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-primary); margin-bottom: var(--canon-space-1_5); } -.canon-FieldDescription { +.canon-TextField--description { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-secondary); @@ -9632,7 +9632,7 @@ margin: 0; } -.canon-FieldError { +.canon-TextField--error { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-danger); @@ -9640,7 +9640,7 @@ margin: 0; } -.canon-Input { +.canon-TextField--input { border-radius: var(--canon-radius-3); border: 1px solid var(--canon-border); padding: 0 var(--canon-space-4); @@ -9653,38 +9653,45 @@ transition: border-color .2s ease-in-out, outline-color .2s ease-in-out; } -.canon-Input::placeholder { +.canon-TextField--input::placeholder { color: var(--canon-fg-secondary); } -.canon-Input:hover { +.canon-TextField--input:hover { border-color: var(--canon-border-hover); } -.canon-Input:focus-visible { +.canon-TextField--input:focus-visible { outline-color: var(--canon-border-pressed); border-color: var(--canon-border-pressed); outline-width: 0; } -.canon-Input[data-invalid] { +.canon-TextField--input[data-invalid] { border-color: var(--canon-fg-danger); } -.canon-Input[data-disabled] { +.canon-TextField--input[data-disabled] { opacity: .5; cursor: not-allowed; border: 1px solid var(--canon-border-disabled); } -.canon-Input--size-small { +.canon-TextField--input-size-small { height: 2rem; } -.canon-Input--size-medium { +.canon-TextField--input-size-medium { height: 2.5rem; } +.canon-TextField--required { + color: var(--canon-fg-secondary); + font-size: var(--canon-font-size-2); + font-weight: var(--canon-font-weight-regular); + margin-left: var(--canon-space-1); +} + .canon-MenuPositioner { outline: 0; } diff --git a/packages/canon/css/textfield.css b/packages/canon/css/textfield.css index e40251fd5a..a542690580 100644 --- a/packages/canon/css/textfield.css +++ b/packages/canon/css/textfield.css @@ -1,18 +1,18 @@ -.canon-FieldRoot { +.canon-TextField { font-family: var(--canon-font-regular); flex-direction: column; width: 100%; display: flex; } -.canon-FieldLabel { +.canon-TextField--label { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-primary); margin-bottom: var(--canon-space-1_5); } -.canon-FieldDescription { +.canon-TextField--description { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-secondary); @@ -20,7 +20,7 @@ margin: 0; } -.canon-FieldError { +.canon-TextField--error { font-size: var(--canon-font-size-2); font-weight: var(--canon-font-weight-regular); color: var(--canon-fg-danger); @@ -28,7 +28,7 @@ margin: 0; } -.canon-Input { +.canon-TextField--input { border-radius: var(--canon-radius-3); border: 1px solid var(--canon-border); padding: 0 var(--canon-space-4); @@ -41,34 +41,41 @@ transition: border-color .2s ease-in-out, outline-color .2s ease-in-out; } -.canon-Input::placeholder { +.canon-TextField--input::placeholder { color: var(--canon-fg-secondary); } -.canon-Input:hover { +.canon-TextField--input:hover { border-color: var(--canon-border-hover); } -.canon-Input:focus-visible { +.canon-TextField--input:focus-visible { outline-color: var(--canon-border-pressed); border-color: var(--canon-border-pressed); outline-width: 0; } -.canon-Input[data-invalid] { +.canon-TextField--input[data-invalid] { border-color: var(--canon-fg-danger); } -.canon-Input[data-disabled] { +.canon-TextField--input[data-disabled] { opacity: .5; cursor: not-allowed; border: 1px solid var(--canon-border-disabled); } -.canon-Input--size-small { +.canon-TextField--input-size-small { height: 2rem; } -.canon-Input--size-medium { +.canon-TextField--input-size-medium { height: 2.5rem; } + +.canon-TextField--required { + color: var(--canon-fg-secondary); + font-size: var(--canon-font-size-2); + font-weight: var(--canon-font-weight-regular); + margin-left: var(--canon-space-1); +} diff --git a/packages/canon/src/components/TextField/TextField.tsx b/packages/canon/src/components/TextField/TextField.tsx index c3e1783561..1b6cf21e0a 100644 --- a/packages/canon/src/components/TextField/TextField.tsx +++ b/packages/canon/src/components/TextField/TextField.tsx @@ -29,7 +29,6 @@ export const TextField = forwardRef( size = 'medium', label, description, - name, error, required, ...rest @@ -57,7 +56,6 @@ export const TextField = forwardRef( )} ; type Inputs = { - example: string; - exampleRequired: string; + firstname: string; + lastname: string; }; export const Default: Story = { @@ -36,32 +37,38 @@ export const Default: Story = { const { register, handleSubmit, - watch, formState: { errors }, } = useForm(); + const onSubmit: SubmitHandler = data => console.log(data); - console.log(watch('example')); // watch input value by passing the name of it - return ( -
- {/* register your input into the hook by invoking the "register" function */} - - - {/* include validation with required or other standard HTML validation rules */} - {/* */} - + - - {/* errors will return when field validation fails */} - {errors.exampleRequired && This field is required} - - + + ); },