Appearance
CssNodeModifier
Interface for modifying CSS nodes in email templates.
typescript
interface CssNodeModifier extends TemplateModifier<HtmlNodeModifier, CssNodeModifier>
Description
CssNodeModifier
provides methods for manipulating CSS rules, properties, and media queries in email templates. It enables adding, modifying, and removing CSS rules while maintaining email client compatibility.
Import
typescript
import { CssNodeModifier } from '@stripoinc/ui-editor-extensions';
Inheritance
Extends: TemplateModifier
Methods
Rule Management Methods
insertRuleBefore()
Inserts a CSS rule before a specified node.
typescript
insertRuleBefore(css: string, beforeNode: ImmutableCssNode): CssNodeModifier
Parameter | Type | Description |
---|---|---|
css | string | The CSS rule string to insert |
beforeNode | ImmutableCssNode | The node to insert before |
Returns: CssNodeModifier
for method chaining
Throws: Error if the node is not a rule or media type
Example:
typescript
modifier.modifyCss(documentNode)
.insertRuleBefore('.new-class { color: red; }', existingRule);
insertRuleAfter()
Inserts a CSS rule after a specified node.
typescript
insertRuleAfter(css: string, afterNode: ImmutableCssNode): CssNodeModifier
Parameter | Type | Description |
---|---|---|
css | string | The CSS rule string to insert |
afterNode | ImmutableCssNode | The node to insert after |
Returns: CssNodeModifier
for method chaining
Throws: Error if the node is not a rule or media type
Example:
typescript
modifier.modifyCss(documentNode)
.insertRuleAfter('@media (max-width: 600px) { .mobile { display: block; } }', mediaQuery);
appendRule()
Appends a CSS rule as the last child of the current node.
typescript
appendRule(css: string): CssNodeModifier
Parameter | Type | Description |
---|---|---|
css | string | The CSS rule string to append |
Returns: CssNodeModifier
for method chaining
Throws: Error if the node is not a rule or media type
Example:
typescript
modifier.modifyCss(styleNode)
.appendRule('.footer { background: #f0f0f0; padding: 20px; }');
prependRule()
Prepends a CSS rule as the first child of the current node.
typescript
prependRule(css: string): CssNodeModifier
Parameter | Type | Description |
---|---|---|
css | string | The CSS rule string to prepend |
Returns: CssNodeModifier
for method chaining
Throws: Error if the node is not a rule or media type
Example:
typescript
modifier.modifyCss(styleNode)
.prependRule('* { box-sizing: border-box; }');
removeRule()
Removes the current CSS rule or media node.
typescript
removeRule(): CssNodeModifier
Returns: CssNodeModifier
for method chaining
Throws: Error if the node is not a rule or media type
Example:
typescript
modifier.modifyCss(outdatedRule)
.removeRule();
Property Methods
setProperty()
Sets or updates a CSS property in the current rule.
typescript
setProperty(name: string, value: string): CssNodeModifier
Parameter | Type | Description |
---|---|---|
name | string | The CSS property name |
value | string | The CSS property value |
Returns: CssNodeModifier
for method chaining
Throws: Error if multiple properties with the same name are found
Example:
typescript
modifier.modifyCss(ruleNode)
.setProperty('color', '#333333')
.setProperty('font-size', '16px')
.setProperty('line-height', '1.5');
removeProperty()
Removes a CSS property from the current rule.
typescript
removeProperty(name: string): CssNodeModifier
Parameter | Type | Description |
---|---|---|
name | string | The CSS property name to remove |
Returns: CssNodeModifier
for method chaining
Throws: Error if multiple properties with the same name are found
Example:
typescript
modifier.modifyCss(ruleNode)
.removeProperty('text-decoration')
.removeProperty('text-transform');