# StyleHelper
This is a helper for authoring conditional values for property styles.
Write complex conditional styles based on one or more conditions, such as viewport sizes and interactive states, in a concise and expressive way.
### Import the Style helper
```tsx
import {
reactExtension,
Style,
View,
} from '@shopify/ui-extensions-react/checkout';
export default reactExtension('purchase.checkout.block.render', () => (
<Extension />
));
function Extension() {
return (
<View
maxInlineSize={Style.default(200)
.when({viewportInlineSize: {min: 'small'}}, 300)
.when({viewportInlineSize: {min: 'medium'}}, 400)
.when({viewportInlineSize: {min: 'large'}}, 800)}
>
Responsive Content
</View>
);
}
```
```js
import {Style, View, extension} from '@shopify/ui-extensions/checkout';
export default extension('purchase.checkout.block.render', (root) => {
const view = root.createComponent(
View,
{
border: 'base',
padding: 'base',
maxInlineSize: Style.default(200)
.when({viewportInlineSize: {min: 'small'}}, 300)
.when({viewportInlineSize: {min: 'medium'}}, 400)
.when({viewportInlineSize: {min: 'large'}}, 800),
},
'Responsive Content',
);
root.appendChild(view);
});
```
## StyleHelper
### DocsStyle
### default
Sets an optional default value to use when no other condition is met.
### when
Adjusts the style based on different conditions. All conditions, expressed
as a literal object, must be met for the associated value to be applied.
The `when` method can be chained together to build more complex styles.
### StylesConditionalStyle
### default
The default value applied when none of the conditional values
specified in `conditionals` are met.
### conditionals
An array of conditional values.
### StylesConditionalValue
### conditions
The conditions that must be met for the value to be applied. At least one
condition must be specified.
### value
The value that will be applied if the conditions are met.
### StylesBaseConditions
### viewportInlineSize
### hover
### focus
### resolution
### StylesConditions
### viewportInlineSize
### hover
### focus
## Related
- [BlockLayout](blocklayout)
- [BlockSpacer](blockspacer)
- [BlockStack](blockstack)
- [Grid](grid)
- [GridItem](griditem)
- [Image](image)
- [InlineLayout](inlinelayout)
- [InlineSpacer](inlinespacer)
- [InlineStack](inlinestack)
- [List](list)
- [Pressable](pressable)
- [ScrollView](scrollview)
- [SkeletonImage](skeletonimage)
- [View](view)
## Examples
This is a helper for authoring conditional values for property styles.
Write complex conditional styles based on one or more conditions, such as viewport sizes and interactive states, in a concise and expressive way.
###
Default styling can be combined with specific conditions. In this example, the Grid’s children will be stacked by default and side by side on viewports above the small
breakpoint.
### Default Style With Conditions
```tsx
<Grid
columns={Style.default('fill').when({viewportInlineSize: {min: 'small'}}, [
'30%',
'70%',
])}
>
<View>Content</View>
<View>Content</View>
</Grid>;
```
###
Using simple conditional styling enables you to specify a styling change when a condition is met. In this example, the View’s padding will be loose
on hover.
### Simple Condition
```tsx
<Pressable
onPress={() => alert('press')}
border={Style.default(['base', 'dotted']).when(
{viewportInlineSize: {min: 'small'}},
['base', 'dotted', 'none', 'base'],
)}
>
Content
</Pressable>;
```