You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

23 lines
817 B

package org.jetbrains.compose.web.css
import org.jetbrains.compose.web.css.selectors.CSSSelector
interface CSSBuilder : StyleBuilder, GenericStyleSheetBuilder<CSSBuilder> {
val root: CSSSelector
val self: CSSSelector
}
class CSSBuilderImpl(
override val root: CSSSelector,
override val self: CSSSelector,
rulesHolder: CSSRulesHolder
) : StyleBuilderImpl(), CSSBuilder, CSSRulesHolder by rulesHolder {
override fun style(selector: CSSSelector, cssRule: CSSBuilder.() -> Unit) {
val (style, rules) = buildCSS(root, selector, cssRule)
rules.forEach { add(it) }
add(selector, style)
}
override fun buildRules(rulesBuild: GenericStyleSheetBuilder<CSSBuilder>.() -> Unit) =
CSSBuilderImpl(root, self, StyleSheetBuilderImpl()).apply(rulesBuild).cssRules
}