本文整理汇总了TypeScript中@library/styles/styleHelpers.borders函数的典型用法代码示例。如果您正苦于以下问题:TypeScript borders函数的具体用法?TypeScript borders怎么用?TypeScript borders使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了borders函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: useThemeCache
export const richEditorFlyoutClasses = useThemeCache(() => {
const vars = richEditorVariables();
const style = styleFactory("richEditorFlyout");
const shadows = shadowHelper();
const globalVars = globalVariables();
const root = style({
...shadows.dropDown(),
position: "absolute",
left: 0,
width: unit( vars.richEditorWidth + vars.emojiBody.padding.horizontal * 2),
zIndex: 6,
overflow: "hidden",
backgroundColor: colorOut(vars.colors.bg),
...borders(),
$nest: {
"&& .ReactVirtualized__Grid": {
width: important(unit(vars.richEditorWidth) as string),
},
},
});
const header = style("header", {
position: "relative",
borderBottom: singleBorder(),
...paddings(vars.emojiHeader.padding),
});
const title = style("title", {
display: "flex",
alignItems: "center",
...longWordEllipsis(),
margin: 0,
maxWidth: calc(`100% - ${unit(vars.menuButton.size)}`),
minHeight: vars.menuButton.size - vars.emojiBody.padding.horizontal,
fontSize: percent(100),
lineHeight: "inherit",
color: colorOut(globalVars.mainColors.fg),
$nest: {
"&:focus": {
outline: 0,
},
},
});
const body = style("body", {
...paddings(vars.emojiBody.padding),
width: unit( vars.richEditorWidth + vars.emojiBody.padding.horizontal * 2),
});
const footer = style("footer", {
borderTop: singleBorder(),
});
return { root, header, body, footer, title };
});
示例2: useThemeCache
export const subcommunityTileClasses = useThemeCache(() => {
const vars = subcommunityTileVariables();
const globalVars = globalVariables();
const debug = debugHelper("subcommunityTile");
const shadow = shadowHelper();
const root = style({
display: "flex",
flexDirection: "column",
alignItems: "stretch",
width: percent(100),
padding: unit(vars.spacing.default),
...userSelect(),
flexGrow: 1,
...debug.name(),
});
const link = style({
...defaultTransition("box-shadow", "border"),
...paddings(vars.link.padding),
display: "block",
position: "relative",
cursor: "pointer",
flexGrow: 1,
color: vars.link.fg.toString(),
backgroundColor: colorOut(vars.link.bg),
borderRadius: unit(2),
minHeight: unit(vars.link.minHeight),
...shadowOrBorderBasedOnLightness(
globalVars.body.backgroundImage.color,
borders({
color: vars.link.fg.fade(0.3),
}),
shadow.embed(),
),
$nest: {
"&:hover": {
...shadowOrBorderBasedOnLightness(
globalVars.body.backgroundImage.color,
borders({
color: vars.link.fg.fade(0.5),
}),
shadow.embedHover(),
),
},
},
...debug.name("link"),
});
const main = style({
position: "relative",
...debug.name("main"),
});
const frame = style({
display: "flex",
alignItems: "center",
justifyContent: "center",
position: "relative",
height: unit(vars.frame.height),
width: unit(vars.frame.width),
marginTop: "auto",
marginRight: "auto",
marginLeft: "auto",
marginBottom: unit(vars.frame.bottomMargin),
...debug.name("iconFrame"),
});
const icon = style({
display: "block",
position: "absolute",
top: 0,
right: 0,
bottom: 0,
left: 0,
margin: "auto",
height: "auto",
maxWidth: percent(100),
maxHeight: percent(100),
...debug.name("icon"),
});
const title = style({
fontSize: unit(vars.title.fontSize),
lineHeight: vars.title.lineHeight,
textAlign: "center",
marginBottom: unit(vars.title.marginBottom),
...debug.name("title"),
});
const description = style({
position: "relative",
marginTop: unit(vars.description.marginTop),
fontSize: unit(vars.description.fontSize),
lineHeight: vars.description.lineHeight,
textAlign: "center",
...debug.name("description"),
});
const fallBackIcon = style({
//.........这里部分代码省略.........
示例3: useThemeCache
export const checkRadioClasses = useThemeCache(() => {
const globalVars = globalVariables();
const vars = checkRadioVariables();
const style = styleFactory("checkRadio");
const flexes = flexHelper();
//.radioButton,
//.checkbox
const root = style({
display: "flex",
flexWrap: "wrap",
alignItems: "center",
whiteSpace: "nowrap",
outline: 0,
$nest: {
"&.focus-accessible": {},
"&:hover": {
$nest: {
"& .radioButton-input:not([disabled]), & .checkbox-input:not([disabled])": {
$nest: {
"& + .radioButton-disk, & + .checkbox-box": {
borderColor: vars.main.hover.border.color.toString(),
opacity: vars.main.hover.opacity,
backgroundColor: vars.main.hover.bg.toString(),
},
},
},
"& .radioButton-disk, & .checkbox-box": {
backgroundColor: vars.main.hover.bg.toString(),
},
},
},
"& + .radioButton, & + .checkbox": {
marginTop: px(12),
},
},
});
//.radioButton-label,
// .checkbox-label
const label = style("label", {
lineHeight: unit(vars.sizing.width),
marginLeft: unit(8),
cursor: "pointer",
...userSelect(),
});
const labelNote = style("labelNote", {
display: "inline-block",
fontSize: unit(vars.labelNote.fontSize),
marginLeft: unit(24),
opacity: vars.labelNote.opacity,
verticalAlign: "middle",
});
// .radioButton-disk,
// .checkbox-box
const iconContainer = style("iconContainer", {
...defaultTransition("border", "background", "opacity"),
position: "relative",
display: "inline-block",
width: unit(vars.sizing.width),
height: unit(vars.sizing.width),
verticalAlign: em(-0.18),
cursor: "pointer",
backgroundColor: colorOut(vars.main.bg),
...borders(vars.border),
});
const radioIcon = style("radioIcon", {
...absolutePosition.middleLeftOfParent(),
display: "none",
width: unit(vars.radioButton.icon.width),
height: unit(vars.radioButton.icon.height),
margin: "auto",
});
const checkIcon = style("checkBoxIcon", {
...absolutePosition.middleOfParent(),
display: "none",
width: unit(vars.checkBox.check.width),
height: unit(vars.checkBox.check.height),
color: vars.main.fg.toString(),
margin: "auto",
});
const disk = style("disk", {
borderRadius: percent(50),
});
// .radioButton-state,
// .checkbox-state
const state = style("state", {
...absolutePosition.fullSizeOfParent(),
color: vars.main.checked.fg.toString(),
});
const diskIcon = style({
width: vars.checkBox.disk.width,
height: vars.checkBox.disk.height,
//.........这里部分代码省略.........
示例4: globalVariables
export const generateButtonClass = (buttonTypeVars: IButtonType, buttonName: string, setZIndexOnState = false) => {
const globalVars = globalVariables();
const formElVars = formElementsVariables();
const buttonGlobals = buttonGlobalVariables();
const style = styleFactory(`button-${buttonName}`);
const zIndex = setZIndexOnState ? 1 : undefined;
const buttonDimensions = buttonTypeVars.sizing || false;
return style(buttonResetMixin(), {
textOverflow: "ellipsis",
overflow: "hidden",
maxWidth: percent(100),
...borders(buttonTypeVars.borders),
...userSelect(),
...buttonSizing(
buttonDimensions && buttonDimensions.minHeight
? buttonDimensions.minHeight
: buttonGlobals.sizing.minHeight,
buttonDimensions && buttonDimensions.minWidth ? buttonDimensions.minWidth : buttonGlobals.sizing.minWidth,
buttonTypeVars.fonts && buttonTypeVars.fonts.size ? buttonTypeVars.fonts.size : buttonGlobals.font.size,
buttonTypeVars.padding && buttonTypeVars.padding.side
? buttonTypeVars.padding.side
: buttonGlobals.padding.side,
formElVars,
),
display: "inline-flex",
alignItems: "center",
position: "relative",
textAlign: "center",
whiteSpace: "nowrap",
verticalAlign: "middle",
justifyContent: "center",
touchAction: "manipulation",
cursor: "pointer",
minWidth: buttonGlobals.sizing.minWidth,
minHeight: buttonGlobals.sizing.minHeight,
...fonts({
...buttonGlobals.font,
...buttonTypeVars.fonts,
}),
backgroundColor: colorOut(buttonTypeVars.colors.bg ? buttonTypeVars.colors.bg : buttonGlobals.colors.bg),
$nest: {
"&:not([disabled])": {
$nest: {
"&:not(.focus-visible)": {
outline: 0,
},
"&:hover": {
zIndex,
backgroundColor: colorOut(
buttonTypeVars.hover.colors && buttonTypeVars.hover.colors.bg
? buttonTypeVars.hover.colors.bg
: undefined,
),
...borders(buttonTypeVars.hover.borders ? buttonTypeVars.hover.borders : undefined),
...fonts(buttonTypeVars.hover && buttonTypeVars.hover.fonts ? buttonTypeVars.hover.fonts : {}),
},
"&:focus": {
zIndex,
backgroundColor: colorOut(
buttonTypeVars.focus.colors && buttonTypeVars.focus.colors.bg
? buttonTypeVars.focus.colors.bg
: undefined,
),
color: colorOut(buttonTypeVars.focus.fg),
...borders(buttonTypeVars.focus.borders ? buttonTypeVars.focus.borders : undefined),
...fonts(buttonTypeVars.focus && buttonTypeVars.focus.fonts ? buttonTypeVars.focus.fonts : {}),
},
"&:active": {
zIndex,
backgroundColor: colorOut(
buttonTypeVars.active.colors && buttonTypeVars.active.colors.bg
? buttonTypeVars.active.colors.bg
: undefined,
),
color: colorOut(buttonTypeVars.active.fg),
...borders(buttonTypeVars.active.borders ? buttonTypeVars.active.borders : undefined),
...fonts(
buttonTypeVars.active && buttonTypeVars.active.fonts ? buttonTypeVars.active.fonts : {},
),
},
"&.focus-visible": {
zIndex,
backgroundColor: colorOut(
buttonTypeVars.focusAccessible.colors && buttonTypeVars.focusAccessible.colors.bg
? buttonTypeVars.focusAccessible.colors.bg
: undefined,
),
color: colorOut(buttonTypeVars.focusAccessible.fg),
...borders(
buttonTypeVars.focusAccessible.borders ? buttonTypeVars.focusAccessible.borders : undefined,
),
...fonts(
buttonTypeVars.focusAccessible && buttonTypeVars.focusAccessible.fonts
? buttonTypeVars.focusAccessible.fonts
: {},
),
},
},
},
//.........这里部分代码省略.........
示例5: useThemeCache
export const richEditorClasses = useThemeCache((legacyMode: boolean, mobile?: boolean) => {
const globalVars = globalVariables();
const style = styleFactory("richEditor");
const vars = richEditorVariables();
const formVars = formElementsVariables();
const root = style({
position: "relative",
display: "block",
$nest: {
"&.isDisabled": {
$nest: {
"&, &.richEditor-button": {
cursor: important("progress"),
},
},
},
"& .richEditor-text, & .richEditor-textWrap, & .richEditor-frame": {
display: "flex",
flexDirection: "column",
flexGrow: 1,
position: "relative",
},
"& .ql-clipboard": {
...srOnly(),
position: "fixed", // Fixed https://github.com/quilljs/quill/issues/1374#issuecomment-415333651
},
"& .richEditor-nextInput, .iconButton, .richEditor-button": {
...singleLineEllipsis(),
...appearance(),
position: "relative",
border: 0,
padding: 0,
background: "none",
textAlign: "left",
},
"& .Close-x": {
display: "block",
cursor: "pointer",
},
"& .content-wrapper": {
height: percent(100),
},
"& .embedDialogue": {
position: "relative",
},
},
});
const iconWrap = style("iconWrap", {
...pointerEvents(),
content: quote(``),
...absolutePosition.middleOfParent(),
width: unit(vars.iconWrap.width),
height: unit(vars.iconWrap.height),
...borders({
radius: 3,
color: "transparent",
}),
});
const paragraphMenu = style("paragraphMenu", {
position: "absolute",
display: "flex",
alignItems: "center",
justifyContent: "center",
top: unit(vars.pilcrow.offset),
left: 0,
marginLeft: unit(-globalVars.gutter.quarter + (!legacyMode ? -(globalVars.gutter.size + 6) : 0)),
transform: `translateX(-100%)`,
height: unit(vars.paragraphMenuHandle.size),
width: unit(globalVars.icon.sizes.default),
animationName: vars.pilcrow.animation.name,
animationDuration: vars.pilcrow.animation.duration,
animationTimingFunction: vars.pilcrow.animation.timing,
animationIterationCount: vars.pilcrow.animation.iterationCount,
zIndex: 1,
$nest: {
".richEditor-button&.isActive:hover": {
cursor: "default",
},
"&.isMenuInset": {
transform: "none",
},
},
});
const paragraphMenuMobile = style("paragraphMenu-mobile", {
position: "relative",
display: "flex",
alignItems: "center",
justifyContent: "center",
top: important(0),
});
const menuBar = style("menuBar", {
position: "relative",
width: unit(vars.menuButton.size * 4),
overflow: "hidden",
});
//.........这里部分代码省略.........
示例6: useThemeCache
export const searchBarClasses = useThemeCache(() => {
const globalVars = globalVariables();
const vars = searchBarVariables();
const titleBarVars = titleBarVariables();
const classesButton = buttonClasses();
const formElementVars = formElementsVariables();
const mediaQueries = layoutVariables().mediaQueries();
const style = styleFactory("searchBar");
const root = style(
{
cursor: "pointer",
$nest: {
"& .searchBar__placeholder": {
color: colorOut(globalVars.mixBgAndFg(0.5)),
margin: "auto",
},
"& .suggestedTextInput-valueContainer": {
$nest: {
".inputBlock-inputText": {
height: "auto",
},
},
},
"& .searchBar-submitButton": {
position: "relative",
borderTopLeftRadius: important(0),
borderBottomLeftRadius: important(0),
marginLeft: unit(-globalVars.border.width * 2),
minWidth: unit(vars.search.minWidth),
flexBasis: unit(vars.search.minWidth),
minHeight: unit(vars.sizing.height),
$nest: {
"&:hover, &:focus": {
zIndex: 1,
},
},
},
"& .searchBar__control": {
display: "flex",
flex: 1,
border: 0,
backgroundColor: "transparent",
height: percent(100),
maxWidth: calc(`100% - ${unit(vars.sizing.height)}`),
$nest: {
"&.searchBar__control--is-focused": {
boxShadow: "none",
$nest: {
"&.inputText": {
borderTopRightRadius: 0,
borderBottomRightRadius: 0,
...borders(buttonVariables().standard.borders),
},
},
},
},
},
"& .searchBar__value-container": {
overflow: "auto",
$nest: {
"& > div": {
width: percent(100),
},
},
},
"& .searchBar__indicators": {
display: "none",
},
"& .searchBar__input": {
color: colorOut(globalVars.mainColors.fg),
width: percent(100),
display: important("block"),
$nest: {
input: {
width: important(percent(100).toString()),
lineHeight: globalVars.lineHeights.base,
},
},
},
"& .searchBar__menu-list": {
maxHeight: calc(`100vh - ${unit(titleBarVars.sizing.height)}`),
},
},
},
mediaQueries.oneColumnDown({
$nest: {
"& .searchBar-submitButton": {
minWidth: 0,
},
},
}),
);
const results = style("results", {
backgroundColor: colorOut(vars.results.bg),
color: colorOut(vars.results.fg),
$nest: {
".suggestedTextInput__placeholder": {
//.........这里部分代码省略.........
示例7: useThemeCache
export const splashStyles = useThemeCache(() => {
const vars = splashVariables();
const style = styleFactory("splash");
const formElementVars = formElementsVariables();
const globalVars = globalVariables();
const root = style({
position: "relative",
backgroundColor: colorOut(vars.outerBackground.color),
});
const image = getBackgroundImage(vars.outerBackground.image, vars.outerBackground.fallbackImage);
const outerBackground = (url?: string) => {
return style("outerBackground", {
...centeredBackgroundProps(),
display: "block",
position: "absolute",
top: px(0),
left: px(0),
width: percent(100),
height: percent(100),
...background(url ? { ...vars.outerBackground, image: url } : vars.outerBackground),
opacity:
!url && (vars.outerBackground.fallbackImage && image === vars.outerBackground.fallbackImage)
? 0.4
: undefined,
});
};
const innerContainer = style("innerContainer", {
...paddings(vars.spacing.padding),
backgroundColor: vars.innerBackground.bg,
});
const title = style("title", {
display: "block",
...fonts(vars.title.font as IFont),
...paddings({
top: unit(vars.title.marginTop),
bottom: unit(vars.title.marginBottom),
}),
flexGrow: 1,
});
const text = style("text", {
color: colorOut(vars.colors.contrast),
});
const searchButton = generateButtonClass(vars.searchButtonType, "splashSearchButton");
const valueContainer = style("valueContainer", {
$nest: {
[`&, &.${searchBarClasses().valueContainer}`]: {
...borders({
color: vars.colors.contrast,
radius: {
right: 0,
left: vars.searchBar.border.radius,
},
}),
},
},
});
const buttonOverwrite = style("buttonOverwrite", {
color: vars.colors.input,
$nest: {
[`&, &.${searchBarClasses().actionButton}`]: {
...borders({
left: {
color: vars.searchBar.border.leftColor,
},
radius: {
right: vars.searchButton.borderRadius,
left: 0,
},
}),
},
},
} as any);
const searchContainer = style("searchContainer", {
position: "relative",
maxWidth: percent(100),
width: px(vars.searchContainer.width),
margin: "auto",
$nest: {
".search-results": {
maxWidth: percent(100),
width: px(vars.searchContainer.width),
margin: "auto",
},
},
});
const icon = style("icon", {});
const input = style("input", {});
const buttonLoader = style("buttonLoader", {});
//.........这里部分代码省略.........
示例8: useThemeCache
export const dropDownClasses = useThemeCache(() => {
const vars = dropDownVariables();
const globalVars = globalVariables();
const style = styleFactory("dropDown");
const shadows = shadowHelper();
const mediaQueries = layoutVariables().mediaQueries();
const root = style({
position: "relative",
});
const contents = style("contents", {
position: "absolute",
minWidth: unit(vars.sizing.width),
backgroundColor: colorOut(vars.contents.bg),
color: colorOut(vars.contents.fg),
overflow: "auto",
...shadowOrBorderBasedOnLightness(vars.contents.bg, borders({}), shadows.dropDown()),
...borders(vars.contents.border),
zIndex: 3,
$nest: {
"&.isParentWidth": {
minWidth: "initial",
},
"&.isOwnWidth": {
width: "initial",
},
"&.isRightAligned": {
right: 0,
top: 0,
},
"& .frame": {
boxShadow: "none",
},
"&.noMinWidth": {
minWidth: 0,
},
"&.hasVerticalPadding": {
...paddings({
vertical: 12,
horizontal: important(0),
}),
},
"&:empty": {
display: "none",
},
},
});
const asModal = style("asModal", {
$nest: {
"&.hasVerticalPadding": paddings({
vertical: 12,
}),
},
});
const likeDropDownContent = style("likeDropDownContent", {
...shadows.dropDown(),
backgroundColor: colorOut(globalVars.mainColors.bg),
...borders(),
});
const items = style("items", {
fontSize: unit(globalVars.fonts.size.medium),
});
const metaItems = style("metaItems", {
$nest: {
"&&": {
display: "block",
},
},
...paddings(vars.metas.padding),
});
const metaItem = style("metaItem", {
$nest: {
"& + &": {
paddingTop: unit(vars.item.padding.top),
},
},
...fonts(vars.metas.font),
});
// wrapping element
const item = style("item", {
display: "flex",
alignItems: "center",
justifyContent: "flex-start",
width: percent(100),
color: "inherit",
...userSelect("none"),
textAlign: "left",
lineHeight: globalVars.lineHeights.condensed,
});
const section = style("section", {
display: "block",
});
//.........这里部分代码省略.........
示例9: useThemeCache
export const modalClasses = useThemeCache(() => {
const globalVars = globalVariables();
const vars = modalVariables();
const style = styleFactory("modal");
const mediaQueries = layoutVariables().mediaQueries();
const shadows = shadowHelper();
const titleBarVars = titleBarVariables();
const overlay = style("overlay", {
position: "fixed",
// Viewport units are useful here because
// we're actually fine this being taller than the initially visible viewport.
height: viewHeight(100),
width: percent(100),
top: 0,
left: 0,
right: 0,
bottom: 0,
background: colorOut(vars.colors.overlayBg),
zIndex: 10,
});
const root = style({
display: "flex",
flexDirection: "column",
width: percent(100),
maxWidth: percent(100),
maxHeight: viewHeight(80),
zIndex: 1,
backgroundColor: colorOut(vars.colors.bg),
position: "fixed",
top: percent(50),
left: percent(50),
bottom: "initial",
overflow: "hidden",
borderRadius: unit(vars.border.radius),
// NOTE: This transform can cause issues if anything inside of us needs fixed positioning.
// See http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/
// See also https://www.w3.org/TR/2009/WD-css3-2d-transforms-20091201/#introduction
// This is why fullscreen unsets the transforms.
transform: translate(`-50%`, `-50%`),
...margins({ all: "auto" }),
$nest: {
"&&.isFullScreen": {
width: percent(100),
height: percent(100),
maxHeight: percent(100),
maxWidth: percent(100),
borderRadius: 0,
border: "none",
top: 0,
bottom: 0,
transform: "none",
left: 0,
right: 0,
},
"&.isLarge": {
width: unit(vars.sizing.large),
maxWidth: calc(`100% - ${unit(vars.spacing.horizontalMargin * 2)}`),
},
"&.isMedium": {
width: unit(vars.sizing.medium),
maxWidth: calc(`100% - ${unit(vars.spacing.horizontalMargin * 2)}`),
},
"&.isSmall": {
width: unit(vars.sizing.small),
maxWidth: calc(`100% - ${unit(vars.spacing.horizontalMargin * 2)}`),
},
"&&&.isSidePanel": {
left: unit(vars.dropDown.padding),
width: calc(`100% - ${unit(vars.dropDown.padding)}`),
display: "flex",
flexDirection: "column",
top: 0,
bottom: 0,
right: 0,
transform: "none",
borderTopRightRadius: 0,
borderBottomRightRadius: 0,
},
"&&.isDropDown": {
top: 0,
left: 0,
right: 0,
bottom: globalVars.gutter.size,
width: percent(100),
marginBottom: "auto",
transform: "none",
maxHeight: percent(100),
borderTopLeftRadius: 0,
borderTopRightRadius: 0,
},
"&.isShadowed": {
...shadows.dropDown(),
...borders(),
},
},
});
//.........这里部分代码省略.........
示例10: useThemeCache
//.........这里部分代码省略.........
...paddings({
top: vars.codeInline.paddingVertical,
bottom: vars.codeInline.paddingVertical,
left: vars.codeInline.paddingHorizontal,
right: vars.codeInline.paddingHorizontal,
}),
background: colorOut(vars.codeInline.bg),
borderRadius: vars.codeInline.borderRadius,
// We CAN'T use display: `inline` & position: `relative` together.
// This causes the cursor to disappear in a contenteditable.
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=724821
display: "inline",
position: "static",
},
"&& .codeBlock": {
display: "block",
wordWrap: "normal",
lineHeight: vars.codeBlock.lineHeight,
borderRadius: vars.codeBlock.borderRadius,
flexShrink: 0, // Needed so code blocks don't collapse in the editor.
whiteSpace: "pre",
...paddings({
top: vars.codeBlock.paddingVertical,
bottom: vars.codeBlock.paddingVertical,
left: vars.codeBlock.paddingHorizontal,
right: vars.codeBlock.paddingHorizontal,
}),
},
};
// Blockquotes & spoilers
// These are temporarily kludged here due to lack of time.
// They should be fully converted in the future but at the moment
// Only the bare minimum is convverted in order to make the colors work.
const spoilersAndQuotes: NestedCSSSelectors = {
[`& .spoiler,
& .button-spoiler,
& .spoiler-icon`]: {
background: colorOut(vars.blocks.bg),
color: colorOut(vars.blocks.fg),
},
"& .spoiler-icon": {
margin: 0,
},
"& .embedExternal-content": {
borderRadius: vars.embeds.borderRadius,
$nest: {
"&::after": {
borderRadius: vars.embeds.borderRadius,
},
},
},
"& .embedText-content": {
background: colorOut(vars.embeds.bg),
color: colorOut(vars.embeds.fg),
overflow: "hidden",
...shadowOrBorderBasedOnLightness(
globalVars.body.backgroundImage.color,
borders({
color: vars.embeds.fg.fade(0.3),
}),
shadowHelper().embed(),
),
},
[`& .embedText-title,
& .embedLink-source,
& .embedLink-excerpt`]: {
color: colorOut(vars.blocks.fg),
},
"& .metaStyle": {
opacity: 0.8,
},
"& .embedLoader-box": {
background: colorOut(vars.embeds.bg),
...borders({
color: vars.embeds.fg.fade(0.3),
}),
},
};
const root = style({
// These CAN'T be flexed. That breaks margin collapsing.
display: important("block"),
position: "relative",
width: percent(100),
wordBreak: "break-word",
lineHeight: globalVars.lineHeights.base,
fontSize: vars.fonts.size,
$nest: {
...headings,
...lists,
...paragraphSpacing,
...linkStyles,
...codeStyles,
...spoilersAndQuotes,
},
});
return { root };
});