3054 lines
64 KiB
CSS
3054 lines
64 KiB
CSS
/* 全局样式入口:主题映射、基础元素、全局命名页面/演示布局及响应式覆盖。当前 CSS Modules 与这些规则并存,后置同名选择器仍会覆盖前文;阅读时要同时检查选择器优先级与媒体条件。本文件只描述呈现,不拥有画布模型或业务状态。 */
|
||
/* 引入 Tailwind 的基础与工具样式;本文件后续规则继续参与层叠,不按组件自动隔离。 */
|
||
@import "tailwindcss";
|
||
/* 把语义颜色/圆角暴露给 Tailwind 工具类;背景/前景/主色引用下方运行时 CSS 变量。 */
|
||
@theme inline {
|
||
--color-background: var(--background);
|
||
--color-foreground: var(--foreground);
|
||
--color-primary: var(--primary);
|
||
--color-primary-foreground: #fff;
|
||
--color-secondary: #f1ebe5;
|
||
--color-secondary-foreground: #49372e;
|
||
--color-muted: #f3efea;
|
||
--color-muted-foreground: #85766b;
|
||
--color-accent: #f1e7de;
|
||
--color-accent-foreground: #49372e;
|
||
--color-border: #ded5cc;
|
||
--color-input: #d3c3b6;
|
||
--color-ring: #9d7d66;
|
||
--color-destructive: #af4439;
|
||
--color-popover: #fffcf9;
|
||
--color-popover-foreground: #38281f;
|
||
--radius-md: 6px;
|
||
--radius-lg: 10px;
|
||
}
|
||
/* 应用默认暖色主题值;这里不是按 workspace 存储的用户配置。 */
|
||
:root {
|
||
--background: #fffcf9;
|
||
--foreground: #38281f;
|
||
--primary: #78523f;
|
||
}
|
||
/* 所有元素默认 border-box,让声明宽高包含 padding 与 border。 */
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
/* 锚点滚动采用平滑动画并预留顶部 90px;减少动态效果查询在后部关闭平滑滚动。 */
|
||
html {
|
||
scroll-behavior: smooth;
|
||
scroll-padding-top: 90px;
|
||
}
|
||
/* 设置页面默认字体、字号、底色和抗锯齿;局部组件可另行覆盖。 */
|
||
body {
|
||
margin: 0;
|
||
color: var(--foreground);
|
||
background: var(--background);
|
||
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
||
font-size: 14px;
|
||
-webkit-font-smoothing: antialiased;
|
||
}
|
||
/* 常见交互元素采用 manipulation;具体画布手势仍在局部样式/处理器内禁用默认行为。 */
|
||
button,
|
||
a,
|
||
input,
|
||
textarea {
|
||
touch-action: manipulation;
|
||
}
|
||
/* 按钮和链接默认对背景、颜色及 transform 做 0.2s 过渡。 */
|
||
button,
|
||
a {
|
||
transition:
|
||
background 0.2s,
|
||
color 0.2s,
|
||
transform 0.2s;
|
||
}
|
||
/* 普通按钮用 pointer;默认 disabled 为 wait,局部不可用按钮可覆盖成 not-allowed。 */
|
||
button {
|
||
cursor: pointer;
|
||
}
|
||
button:disabled {
|
||
cursor: wait;
|
||
}
|
||
/* 清除链接默认下划线,后面按用途为部分文字按钮重新加下划线。 */
|
||
a {
|
||
text-decoration: none;
|
||
}
|
||
/* 键盘可见焦点统一外描边;输入框单独使用边色和淡阴影表达聚焦。 */
|
||
button:focus-visible,
|
||
a:focus-visible {
|
||
outline: 2px solid #a47764;
|
||
outline-offset: 4px;
|
||
}
|
||
/* 清除输入默认 outline,下面的 focus 规则改用自定义边框/阴影。 */
|
||
input,
|
||
textarea {
|
||
outline: none;
|
||
}
|
||
input:focus,
|
||
textarea:focus {
|
||
border-color: #78523f !important;
|
||
box-shadow: 0 0 0 3px #78523f12;
|
||
}
|
||
/* 标题、正文和 figure 清除默认 margin,段落间距由各页面规则提供。 */
|
||
h1,
|
||
h2,
|
||
h3,
|
||
p,
|
||
figure {
|
||
margin: 0;
|
||
}
|
||
/* 图片默认不超过父容器宽度且保持内容比例;头像等局部场景可改 object-fit。 */
|
||
img {
|
||
max-width: 100%;
|
||
object-fit: contain;
|
||
}
|
||
/* 按钮中的 SVG 不随 flex 收缩,避免控件挤压导致图标变窄。 */
|
||
button svg {
|
||
flex-shrink: 0;
|
||
}
|
||
/* 正文居中并限制为 1248px,桌面两侧至少留总计 112px;断点规则另行缩小边距。 */
|
||
.container {
|
||
width: min(1248px, calc(100% - 112px));
|
||
margin: auto;
|
||
}
|
||
/* 全局品牌行保持图标/名称/副标横排不换行,图标不压缩。 */
|
||
.brand {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
font-size: 19px;
|
||
font-weight: 700;
|
||
white-space: nowrap;
|
||
}
|
||
.brand img {
|
||
flex-shrink: 0;
|
||
}
|
||
.brand small {
|
||
font-size: 13px;
|
||
font-weight: 500;
|
||
margin-left: 3px;
|
||
letter-spacing: -0.2px;
|
||
}
|
||
/* 深色背景上的品牌使用浅文字,并提高图片亮度。 */
|
||
.brand-light {
|
||
color: #fff9f4;
|
||
}
|
||
.brand-light img {
|
||
filter: brightness(1.6);
|
||
}
|
||
/* 章节引题采用小字号和较大字距;登录/工作区等局部规则会覆盖颜色与字号。 */
|
||
.eyebrow {
|
||
font-size: 10px;
|
||
line-height: 1.7;
|
||
letter-spacing: 1.7px;
|
||
font-weight: 500;
|
||
color: #8b7667;
|
||
}
|
||
/* 导航的初始 flex 布局和背景;文件末尾同名规则将 display 改为 grid。 */
|
||
.site-nav {
|
||
height: 88px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 0 max(56px, calc((100% - 1248px) / 2));
|
||
border-bottom: 1px solid #e7ddd25c;
|
||
background: #fff9f2;
|
||
gap: 26px;
|
||
}
|
||
/* 导航链接横排、悬停加深颜色;最终水平对齐还受末尾 justify-content:center 影响。 */
|
||
.site-nav nav {
|
||
display: flex;
|
||
gap: 32px;
|
||
font-size: 12px;
|
||
color: #6f6259;
|
||
}
|
||
.site-nav nav a:hover {
|
||
color: #38281f;
|
||
}
|
||
/* 导航右侧动作横排并禁止标签/链接换行;末尾为 grid 布局补充 justify-self。 */
|
||
.nav-actions {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 26px;
|
||
font-size: 12px;
|
||
}
|
||
.nav-actions [data-slot],
|
||
.nav-actions a {
|
||
white-space: nowrap;
|
||
}
|
||
/* 全局命名的 landing 表面裁剪溢出,以下 hero/preview 等样式与局部 LandingPage CSS Module 分开。 */
|
||
.landing {
|
||
overflow: hidden;
|
||
background: #fff9f2;
|
||
}
|
||
/* 旧首屏标题容器提供定位参照和顶部留白,文案与操作区由后续规则排版。 */
|
||
.hero {
|
||
position: relative;
|
||
padding-top: 90px;
|
||
}
|
||
.hero .eyebrow {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
/* 引题中的圆点只提供状态装饰,业务状态不能由颜色规则推断。 */
|
||
.status-dot {
|
||
height: 6px;
|
||
width: 6px;
|
||
display: inline-block;
|
||
border-radius: 50%;
|
||
background: #9e805f;
|
||
}
|
||
/* 初始标题使用 clamp 限制大小;后置同名规则补充 fit-content 宽度。 */
|
||
.hero h1 {
|
||
font-size: clamp(42px, 4.5vw, 66px);
|
||
font-weight: 650;
|
||
letter-spacing: -3px;
|
||
line-height: 1.45;
|
||
margin-top: 24px;
|
||
position: relative;
|
||
display: inline-block;
|
||
}
|
||
/* 标题强调文字初始颜色;最终装饰改由末尾 span 伪元素提供。 */
|
||
.hero h1 span {
|
||
color: #916e55;
|
||
}
|
||
/* 旧装饰线的位置与尺寸,末尾最终会隐藏此元素,改绘 span:after。 */
|
||
.hero-stroke {
|
||
position: absolute;
|
||
bottom: -1px;
|
||
right: -7px;
|
||
width: 215px;
|
||
height: 20px;
|
||
color: #bca381;
|
||
transform: rotate(-3deg);
|
||
}
|
||
/* 首屏说明文字用较宽行高与弱色,和标题拉开距离。 */
|
||
.hero-copy {
|
||
color: #847264;
|
||
font-size: 14px;
|
||
line-height: 1.9;
|
||
margin-top: 23px;
|
||
}
|
||
/* 主动作与文字链接横排;首个主链接/按钮设置相同最小宽度。 */
|
||
.hero-actions {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 32px;
|
||
margin-top: 31px;
|
||
}
|
||
.hero-actions > a {
|
||
font-size: 12px;
|
||
}
|
||
/* 文字链接和箭头并排,悬停只改变文字颜色。 */
|
||
.text-link {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
font-size: 12px;
|
||
font-weight: 500;
|
||
}
|
||
.text-link:hover {
|
||
color: #9d6a48;
|
||
}
|
||
.hero-actions button,
|
||
.hero-actions > a:first-child {
|
||
min-width: 155px;
|
||
}
|
||
/* 人物展示用五列等宽网格,第二/第四项略错位,图注居中且默认不换行。 */
|
||
.people-row {
|
||
display: grid;
|
||
grid-template-columns: repeat(5, 1fr);
|
||
gap: 34px;
|
||
margin-top: 65px;
|
||
}
|
||
.people-row figure {
|
||
min-width: 0;
|
||
}
|
||
.person-slot {
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
.person-slot img {
|
||
width: 200px;
|
||
height: 220px;
|
||
}
|
||
.people-row figure:nth-child(2) {
|
||
padding-top: 11px;
|
||
}
|
||
.people-row figure:nth-child(4) {
|
||
padding-top: 7px;
|
||
}
|
||
.people-row figcaption {
|
||
display: flex;
|
||
gap: 12px;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 11px;
|
||
margin-top: 20px;
|
||
color: #7f6c5c;
|
||
white-space: nowrap;
|
||
}
|
||
.people-row figcaption span {
|
||
font-size: 9px;
|
||
color: #b8a595;
|
||
font-family: monospace;
|
||
}
|
||
/* 首屏底注用细上边线分隔,两端文字左右对齐。 */
|
||
.hero-footnote {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 43px;
|
||
border-top: 1px solid #e8dfd4;
|
||
padding: 23px 0 30px;
|
||
font-size: 9px;
|
||
letter-spacing: 1.3px;
|
||
color: #9a8776;
|
||
}
|
||
/* 产品空间章节采用浅色表面和上下留白;标题区将标题/说明分置两端。 */
|
||
.space-section {
|
||
padding: 110px 0;
|
||
background: #fffdf9;
|
||
border-top: 1px solid #eee5da;
|
||
}
|
||
.section-heading {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: flex-end;
|
||
gap: 30px;
|
||
margin-bottom: 46px;
|
||
}
|
||
.section-heading p {
|
||
font-size: 13px;
|
||
line-height: 1.9;
|
||
color: #8a786b;
|
||
margin-bottom: 5px;
|
||
}
|
||
/* 全局二级标题默认字号/字距;各页面和窄屏查询按更具体规则覆盖。 */
|
||
h2 {
|
||
font-size: 38px;
|
||
line-height: 1.55;
|
||
letter-spacing: -1.4px;
|
||
font-weight: 600;
|
||
}
|
||
.section-heading h2 {
|
||
margin-top: 18px;
|
||
}
|
||
/* 展示预览采用 205px 侧栏加弹性画布,两列共高 550px 并裁剪内部装饰。 */
|
||
.product-preview {
|
||
border: 1px solid #dfd8ce;
|
||
box-shadow: 0 20px 70px #5d453013;
|
||
display: grid;
|
||
grid-template-columns: 205px 1fr;
|
||
border-radius: 10px;
|
||
overflow: hidden;
|
||
height: 550px;
|
||
background: #faf9f6;
|
||
}
|
||
/* 展示侧栏内部缩小品牌/文字,底注固定到底部,active 行用独立底色。 */
|
||
.preview-sidebar {
|
||
position: relative;
|
||
background: #f3f0e9;
|
||
border-right: 1px solid #e3ddd4;
|
||
padding: 25px 18px;
|
||
font-size: 11px;
|
||
}
|
||
.preview-sidebar .brand {
|
||
font-size: 14px;
|
||
margin-bottom: 28px;
|
||
}
|
||
.preview-sidebar .brand img {
|
||
width: 27px;
|
||
height: 27px;
|
||
}
|
||
.preview-sidebar .brand small {
|
||
font-size: 9px;
|
||
}
|
||
.preview-sidebar > p {
|
||
margin-bottom: 28px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
}
|
||
.preview-sidebar > div {
|
||
padding: 10px 6px;
|
||
border-radius: 4px;
|
||
color: #847467;
|
||
}
|
||
.preview-sidebar .preview-active {
|
||
background: #e8e1d7;
|
||
color: #634b3c;
|
||
}
|
||
.preview-sidebar > small {
|
||
position: absolute;
|
||
bottom: 22px;
|
||
font-size: 9px;
|
||
color: #a79786;
|
||
}
|
||
/* 展示画布以径向渐变平铺点阵,为便签、图稿和工具条提供相对定位。 */
|
||
.preview-canvas {
|
||
position: relative;
|
||
overflow: hidden;
|
||
background-color: #fcfbf8;
|
||
background-image: radial-gradient(#c8beb0 0.65px, transparent 0.65px);
|
||
background-size: 18px 18px;
|
||
}
|
||
/* 预览顶部信息栏,span 浮到右侧。 */
|
||
.preview-bar {
|
||
height: 45px;
|
||
background: #fffdf9e6;
|
||
border-bottom: 1px solid #e9e3da;
|
||
font-size: 10px;
|
||
padding: 15px 21px;
|
||
}
|
||
.preview-bar span {
|
||
float: right;
|
||
}
|
||
/* 纸张预览绝对定位、轻微旋转,以 z-index:2 盖在线条上;内部使用衬线标题。 */
|
||
.preview-note {
|
||
position: absolute;
|
||
left: 8%;
|
||
top: 21%;
|
||
background: #fffefd;
|
||
border: 1px solid #dfd6c9;
|
||
width: 31%;
|
||
padding: 28px 25px;
|
||
transform: rotate(-4deg);
|
||
z-index: 2;
|
||
box-shadow: 2px 6px 12px #4b362506;
|
||
}
|
||
.preview-note small {
|
||
font-size: 8px;
|
||
letter-spacing: 1.1px;
|
||
color: #9a8570;
|
||
}
|
||
.preview-note h3 {
|
||
font-family: "Songti SC", serif;
|
||
font-weight: 500;
|
||
font-size: 26px;
|
||
line-height: 1.55;
|
||
margin: 24px 0 20px;
|
||
}
|
||
.preview-note p {
|
||
font-size: 10px;
|
||
line-height: 1.9;
|
||
color: #a08873;
|
||
}
|
||
/* 艺术预览另一方向旋转,独立设置图形/标题尺寸。 */
|
||
.preview-art {
|
||
position: absolute;
|
||
left: 48%;
|
||
top: 18%;
|
||
width: 38%;
|
||
height: 255px;
|
||
background: #f4e9df;
|
||
padding: 25px 30px;
|
||
transform: rotate(5deg);
|
||
z-index: 2;
|
||
}
|
||
.preview-art .light-shape {
|
||
width: 100%;
|
||
height: 165px;
|
||
}
|
||
.preview-art > span {
|
||
font-family: "Songti SC", serif;
|
||
font-size: 20px;
|
||
display: block;
|
||
margin-top: 13px;
|
||
}
|
||
/* 共享灯光插画由椭圆径向渐变和拱形圆角绘制,并非实际图片资源。 */
|
||
.light-shape {
|
||
background: radial-gradient(
|
||
ellipse at 44% 70%,
|
||
#fff4e5 0%,
|
||
#b9967f 24%,
|
||
#745748 53%,
|
||
#49372e 85%
|
||
);
|
||
border-radius: 150px 150px 5px 5px;
|
||
}
|
||
/* 便签固定相对画布比例位置,右下大型 span 作为装饰。 */
|
||
.preview-sticky {
|
||
position: absolute;
|
||
left: 52%;
|
||
top: 65%;
|
||
background: #eae9cd;
|
||
padding: 20px 22px;
|
||
width: 32%;
|
||
font-size: 12px;
|
||
line-height: 1.7;
|
||
transform: rotate(-3deg);
|
||
z-index: 2;
|
||
}
|
||
.preview-sticky > span {
|
||
position: absolute;
|
||
right: 15px;
|
||
bottom: 10px;
|
||
font-size: 40px;
|
||
color: #9e9e75;
|
||
}
|
||
/* 展示工具条层级高于卡片;下方连接 SVG 覆盖画布但不截获指针。 */
|
||
.preview-tools {
|
||
position: absolute;
|
||
bottom: 18px;
|
||
left: 32%;
|
||
padding: 12px 22px;
|
||
font-size: 16px;
|
||
background: #fff;
|
||
border: 1px solid #e3d9cc;
|
||
border-radius: 8px;
|
||
box-shadow: 0 5px 10px #58402008;
|
||
z-index: 3;
|
||
}
|
||
.preview-connect {
|
||
position: absolute;
|
||
inset: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
pointer-events: none;
|
||
}
|
||
/* 工具章节提供上下留白,两列工具卡片共用边框和元信息排版。 */
|
||
.tools-section {
|
||
padding-top: 110px;
|
||
padding-bottom: 110px;
|
||
}
|
||
.tool-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 28px;
|
||
}
|
||
.tool-card {
|
||
padding: 27px;
|
||
background: #fffcf8;
|
||
border: 1px solid #e2d8cd;
|
||
border-radius: 7px;
|
||
}
|
||
.tool-meta {
|
||
font-family: monospace;
|
||
font-size: 10px;
|
||
color: #9b8776;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
.tool-card h3 {
|
||
font-size: 23px;
|
||
font-weight: 600;
|
||
margin: 27px 0 12px;
|
||
letter-spacing: -0.6px;
|
||
}
|
||
.tool-card p {
|
||
font-size: 12px;
|
||
line-height: 1.9;
|
||
color: #8c7b6e;
|
||
max-width: 400px;
|
||
min-height: 45px;
|
||
}
|
||
.tool-card .text-link {
|
||
margin-top: 22px;
|
||
}
|
||
/* 两种工具插画共用固定高度与裁剪容器,各自再定义内容。 */
|
||
.type-art,
|
||
.canvas-art {
|
||
height: 285px;
|
||
margin-top: 25px;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
/* 排版工具插画使用大字与绝对定位装饰字形,形成层叠字样。 */
|
||
.type-art {
|
||
background: #eae8d2;
|
||
padding: 22px 35px;
|
||
font-weight: 800;
|
||
font-size: 61px;
|
||
line-height: 0.95;
|
||
letter-spacing: -3px;
|
||
}
|
||
.type-art > span {
|
||
display: block;
|
||
font-size: 38px;
|
||
letter-spacing: -2px;
|
||
font-family: Georgia, serif;
|
||
font-weight: 500;
|
||
margin-top: 10px;
|
||
}
|
||
.type-art > i {
|
||
position: absolute;
|
||
right: 24px;
|
||
bottom: -5px;
|
||
font-size: 180px;
|
||
line-height: 1;
|
||
color: #aaa580;
|
||
font-style: normal;
|
||
font-weight: 400;
|
||
transform: rotate(10deg);
|
||
}
|
||
/* 画布工具插画使用点阵底和旋转便签;第二便签靠右,装饰字符另行定位。 */
|
||
.canvas-art {
|
||
background-color: #f3eee8;
|
||
background-image: radial-gradient(#c5b9a9 1px, transparent 1px);
|
||
background-size: 16px 16px;
|
||
}
|
||
.canvas-art > span {
|
||
position: absolute;
|
||
padding: 23px 18px;
|
||
font-size: 14px;
|
||
box-shadow: 0 4px 12px #4d37220b;
|
||
background: #fffdf9;
|
||
border: 1px solid #e4d8c9;
|
||
left: 35px;
|
||
top: 44px;
|
||
transform: rotate(-6deg);
|
||
}
|
||
.canvas-art > span:nth-of-type(2) {
|
||
left: auto;
|
||
right: 38px;
|
||
top: 95px;
|
||
transform: rotate(6deg);
|
||
background: #e7e6c9;
|
||
}
|
||
.canvas-art > i {
|
||
position: absolute;
|
||
left: 40%;
|
||
top: 80px;
|
||
font-size: 70px;
|
||
font-style: normal;
|
||
font-family: serif;
|
||
color: #b2987d;
|
||
transform: rotate(12deg);
|
||
}
|
||
.canvas-art > b {
|
||
position: absolute;
|
||
bottom: 40px;
|
||
left: 22%;
|
||
font-size: 25px;
|
||
font-weight: 400;
|
||
font-family: "Songti SC", serif;
|
||
}
|
||
/* 灵感章节用独立底色/上下边线,三列图文按统一图片高度排列。 */
|
||
.ideas-section {
|
||
padding: 100px 0;
|
||
background: #f1eadd;
|
||
border-top: 1px solid #e9dfd0;
|
||
border-bottom: 1px solid #e9dfd0;
|
||
}
|
||
.ideas-section h2 {
|
||
margin-top: 18px;
|
||
}
|
||
.idea-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, 1fr);
|
||
gap: 60px;
|
||
margin-top: 45px;
|
||
}
|
||
.idea-grid img {
|
||
height: 100px;
|
||
width: 130px;
|
||
object-position: left center;
|
||
margin-bottom: 15px;
|
||
}
|
||
.idea-grid h3 {
|
||
font-size: 17px;
|
||
margin-bottom: 10px;
|
||
}
|
||
.idea-grid p {
|
||
font-size: 12px;
|
||
line-height: 1.9;
|
||
color: #887767;
|
||
max-width: 290px;
|
||
}
|
||
/* 工作流初始两列布局,右侧有序列表移除默认编号,由子 span 自行呈现步骤号。 */
|
||
.workflow {
|
||
padding-top: 120px;
|
||
padding-bottom: 120px;
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 100px;
|
||
}
|
||
.workflow h2 {
|
||
margin: 18px 0 24px;
|
||
}
|
||
.workflow p {
|
||
color: #8a7768;
|
||
font-size: 12px;
|
||
line-height: 1.9;
|
||
}
|
||
.workflow .text-link {
|
||
margin-top: 27px;
|
||
}
|
||
.workflow ol {
|
||
padding: 10px 0 0;
|
||
list-style: none;
|
||
}
|
||
.workflow li {
|
||
display: flex;
|
||
gap: 26px;
|
||
padding: 25px 0;
|
||
border-bottom: 1px solid #e4d9cc;
|
||
}
|
||
.workflow li > span {
|
||
font-size: 13px;
|
||
color: #a08a73;
|
||
font-family: monospace;
|
||
padding-top: 5px;
|
||
}
|
||
.workflow li h3 {
|
||
font-size: 17px;
|
||
margin-bottom: 8px;
|
||
}
|
||
/* FAQ 限制内容宽度,问题按钮横跨整行,答案留出底部间距。 */
|
||
.faq {
|
||
max-width: 800px;
|
||
padding-bottom: 110px;
|
||
}
|
||
.faq h2 {
|
||
font-size: 29px;
|
||
margin: 15px 0 33px;
|
||
}
|
||
.faq-item {
|
||
border-top: 1px solid #e3d9ce;
|
||
}
|
||
.faq-item:last-child {
|
||
border-bottom: 1px solid #e3d9ce;
|
||
}
|
||
.faq-item button {
|
||
border: 0;
|
||
background: none;
|
||
padding: 23px 0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
width: 100%;
|
||
font-size: 13px;
|
||
text-align: left;
|
||
}
|
||
.faq-item p {
|
||
font-size: 12px;
|
||
color: #8a796b;
|
||
line-height: 1.9;
|
||
padding-bottom: 25px;
|
||
max-width: 640px;
|
||
}
|
||
/* 结尾 CTA 区域裁剪右侧大型装饰星,星形 pointer-events:none 避免遮挡动作。 */
|
||
.closing {
|
||
position: relative;
|
||
padding: 90px max(56px, calc((100% - 1248px) / 2));
|
||
background: #eae8cf;
|
||
overflow: hidden;
|
||
}
|
||
.closing h2 {
|
||
font-size: 44px;
|
||
margin: 20px 0 23px;
|
||
}
|
||
.closing p {
|
||
font-size: 12px;
|
||
color: #8c8063;
|
||
margin-bottom: 27px;
|
||
}
|
||
.closing-star {
|
||
position: absolute;
|
||
right: 12%;
|
||
top: 30px;
|
||
font-size: 330px;
|
||
font-weight: 300;
|
||
line-height: 1.2;
|
||
color: #c7c4a0;
|
||
transform: rotate(12deg);
|
||
pointer-events: none;
|
||
}
|
||
/* 页脚品牌、说明和链接横排,正文 flex:1 占据余量;窄屏逐步隐藏次要信息。 */
|
||
.site-footer {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 30px;
|
||
padding: 36px max(56px, calc((100% - 1248px) / 2));
|
||
font-size: 10px;
|
||
background: #fff9f2;
|
||
white-space: nowrap;
|
||
}
|
||
.site-footer .brand {
|
||
font-size: 15px;
|
||
}
|
||
.site-footer .brand img {
|
||
width: 27px;
|
||
height: 27px;
|
||
}
|
||
.site-footer .brand small {
|
||
font-size: 10px;
|
||
}
|
||
.site-footer p {
|
||
color: #9a8775;
|
||
flex: 1;
|
||
}
|
||
.site-footer a:not(.brand) {
|
||
display: flex;
|
||
gap: 7px;
|
||
align-items: center;
|
||
}
|
||
.site-footer > span {
|
||
color: #b2a18f;
|
||
font-size: 9px;
|
||
}
|
||
/* 登录页桌面分成 46% 品牌故事与 54% 表单;800px 以下隐藏故事并转为单区。 */
|
||
.auth-page {
|
||
display: grid;
|
||
grid-template-columns: 46% 54%;
|
||
min-height: 100dvh;
|
||
}
|
||
/* 品牌故事用深渐变和最小高度,为拼贴与底部注记留出空间。 */
|
||
.auth-story {
|
||
min-height: 850px;
|
||
position: relative;
|
||
background: linear-gradient(125deg, #211b17 8%, #634635 40%, #241e19 85%);
|
||
color: #fff9f2;
|
||
padding: 40px;
|
||
}
|
||
.auth-story > .brand small {
|
||
display: block;
|
||
margin-left: 0;
|
||
font-size: 10px;
|
||
font-weight: 400;
|
||
letter-spacing: 1px;
|
||
color: #c2b6ae;
|
||
}
|
||
/* 故事文案与上方品牌拉开距离,浅色正文适配深背景。 */
|
||
.auth-story-copy {
|
||
margin-top: 105px;
|
||
}
|
||
.auth-story .eyebrow {
|
||
color: #beaea2;
|
||
font-size: 10px;
|
||
}
|
||
.auth-story-copy h1 {
|
||
font-size: 42px;
|
||
line-height: 1.5;
|
||
letter-spacing: -1.5px;
|
||
font-weight: 650;
|
||
margin: 28px 0 22px;
|
||
}
|
||
.auth-story-copy > p {
|
||
color: #ddd0c3;
|
||
font-size: 13px;
|
||
line-height: 1.9;
|
||
}
|
||
/* 拼贴采用相对容器,便签/图稿绝对定位并带相反旋转角。 */
|
||
.auth-collage {
|
||
height: 300px;
|
||
position: relative;
|
||
margin-top: 40px;
|
||
max-width: 500px;
|
||
}
|
||
/* 拼贴卡片共用尺寸、圆角和投影,后面的 auth-art 覆盖高度与配色。 */
|
||
.auth-note,
|
||
.auth-art {
|
||
position: absolute;
|
||
width: 220px;
|
||
border-radius: 16px;
|
||
height: 250px;
|
||
padding: 25px;
|
||
box-shadow: 0 20px 30px #140c0726;
|
||
}
|
||
/* 便签偏左下,深底浅边;图稿位于右上,用共享 light-shape 装饰。 */
|
||
.auth-note {
|
||
left: 0;
|
||
top: 18px;
|
||
transform: rotate(-8deg);
|
||
background: #2c241f;
|
||
border: 1px solid #85776c80;
|
||
}
|
||
.auth-note small,
|
||
.auth-art small {
|
||
font-size: 8px;
|
||
letter-spacing: 0.8px;
|
||
}
|
||
.auth-note h2 {
|
||
font-size: 24px;
|
||
line-height: 1.6;
|
||
letter-spacing: -0.8px;
|
||
margin: 28px 0 20px;
|
||
font-weight: 500;
|
||
}
|
||
.auth-note p {
|
||
font-size: 10px;
|
||
color: #bcada2;
|
||
}
|
||
/* 右侧图稿旋转并使用浅纸色,内部插画和标题单独排版。 */
|
||
.auth-art {
|
||
left: 46%;
|
||
top: 0;
|
||
transform: rotate(8deg);
|
||
height: 276px;
|
||
background: #fff6ee;
|
||
color: #4b382d;
|
||
padding: 22px;
|
||
}
|
||
.auth-art .light-shape {
|
||
height: 145px;
|
||
margin-top: 22px;
|
||
width: 100%;
|
||
}
|
||
.auth-art h3 {
|
||
font-size: 19px;
|
||
font-family: "Songti SC", serif;
|
||
margin-top: 12px;
|
||
}
|
||
.auth-art p {
|
||
font-size: 8px;
|
||
color: #8f7a6b;
|
||
margin-top: 8px;
|
||
}
|
||
/* 椭圆轨道绝对铺在拼贴区域,caption 居中;故事 footer 固定在故事列底部。 */
|
||
.auth-orbit {
|
||
position: absolute;
|
||
inset: 0 20px;
|
||
border: 1px solid #b19b7c35;
|
||
border-radius: 50%;
|
||
transform: rotate(15deg);
|
||
}
|
||
.auth-caption {
|
||
display: block;
|
||
font-size: 8px;
|
||
color: #bbada2;
|
||
letter-spacing: 2px;
|
||
text-align: center;
|
||
margin-top: 6px;
|
||
}
|
||
.auth-story > footer {
|
||
position: absolute;
|
||
bottom: 24px;
|
||
left: 40px;
|
||
font-size: 9px;
|
||
color: #ae9d90;
|
||
}
|
||
/* 表单列 flex 居中,返回链接绝对放在右上;表单容器限制最大宽度。 */
|
||
.auth-main {
|
||
position: relative;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 100px 50px;
|
||
background: #fffcf9;
|
||
}
|
||
.auth-back {
|
||
position: absolute;
|
||
right: 40px;
|
||
top: 37px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
font-size: 11px;
|
||
color: #8f7b6a;
|
||
}
|
||
.auth-form-wrap {
|
||
width: 100%;
|
||
max-width: 420px;
|
||
text-align: center;
|
||
}
|
||
.auth-form-wrap > .eyebrow {
|
||
font-size: 8px;
|
||
letter-spacing: 1.4px;
|
||
color: #a59383;
|
||
}
|
||
.auth-form-wrap > h1 {
|
||
font-size: 30px;
|
||
font-weight: 600;
|
||
letter-spacing: -1px;
|
||
margin: 16px 0 8px;
|
||
}
|
||
.auth-form-wrap > p {
|
||
font-size: 12px;
|
||
color: #8e7a69;
|
||
}
|
||
/* 登录/注册页签平分行宽,aria-selected 决定当前白底和字体强调。 */
|
||
.auth-tabs {
|
||
background: #f1e8df;
|
||
border: 1px solid #e5d6c8;
|
||
display: flex;
|
||
gap: 4px;
|
||
padding: 4px;
|
||
border-radius: 8px;
|
||
margin-top: 35px;
|
||
margin-bottom: 26px;
|
||
}
|
||
.auth-tabs button {
|
||
flex: 1;
|
||
background: none;
|
||
border: none;
|
||
height: 36px;
|
||
font-size: 12px;
|
||
color: #a08a78;
|
||
border-radius: 5px;
|
||
}
|
||
.auth-tabs button[aria-selected="true"] {
|
||
background: #fffcf9;
|
||
color: #634b3b;
|
||
box-shadow: 0 1px 3px #634b3b0a;
|
||
font-weight: 600;
|
||
}
|
||
.auth-form-wrap form {
|
||
text-align: left;
|
||
}
|
||
/* 这是全局 form label 规则,会作用于匹配的其它表单;局部模块可按层叠覆盖。 */
|
||
form label {
|
||
font-size: 12px;
|
||
display: block;
|
||
margin-bottom: 9px;
|
||
color: #635044;
|
||
}
|
||
/* 认证输入和对话框输入共用高度/边框;占位色与表单直系输入间距另行定义。 */
|
||
.auth-form-wrap input,
|
||
.dialog-input {
|
||
height: 46px;
|
||
border: 1px solid #c9b5a4;
|
||
border-radius: 7px;
|
||
background: transparent;
|
||
padding: 0 14px;
|
||
width: 100%;
|
||
font-size: 13px;
|
||
color: #49372e;
|
||
}
|
||
.auth-form-wrap input::placeholder,
|
||
.dialog-input::placeholder {
|
||
color: #b0a093;
|
||
}
|
||
.auth-form-wrap form > input {
|
||
margin-bottom: 21px;
|
||
}
|
||
/* 密码输入右侧留出空间,显示切换按钮绝对放在输入内侧。 */
|
||
.password-field {
|
||
position: relative;
|
||
}
|
||
.password-field input {
|
||
padding-right: 45px;
|
||
}
|
||
.password-field button {
|
||
position: absolute;
|
||
right: 13px;
|
||
top: 14px;
|
||
color: #8c7867;
|
||
line-height: 0;
|
||
}
|
||
/* 提交按钮占满表单宽,46px 高度用 important 保证不被普通工具类改小。 */
|
||
.auth-submit {
|
||
width: 100%;
|
||
margin-top: 26px;
|
||
height: 46px !important;
|
||
}
|
||
/* 社交登录分隔线中间文字用同表面背景盖住边线。 */
|
||
.auth-divider {
|
||
position: relative;
|
||
margin: 28px 0 23px;
|
||
border-top: 1px solid #e9ded3;
|
||
}
|
||
.auth-divider span {
|
||
position: relative;
|
||
top: -9px;
|
||
padding: 0 13px;
|
||
font-size: 10px;
|
||
color: #ae9a86;
|
||
background: #fffcf9;
|
||
}
|
||
/* 社交按钮等分宽度;Google/Slack 字形标记仅是外观,授权行为由组件处理。 */
|
||
.social-buttons {
|
||
display: flex;
|
||
gap: 12px;
|
||
}
|
||
.social-buttons button {
|
||
flex: 1;
|
||
height: 42px;
|
||
}
|
||
.google-mark {
|
||
font-family: Arial;
|
||
font-size: 17px;
|
||
color: #6282a4;
|
||
}
|
||
.slack-mark {
|
||
font-size: 24px;
|
||
font-family: Arial;
|
||
color: #7c586e;
|
||
}
|
||
/* 表单说明和 demo 链接使用更小字号,和主动作区分。 */
|
||
.auth-form-wrap > .auth-notice {
|
||
font-size: 10px;
|
||
line-height: 1.9;
|
||
margin-top: 23px;
|
||
color: #a38d79;
|
||
}
|
||
.demo-link {
|
||
font-size: 10px;
|
||
color: #a4927e;
|
||
display: inline-flex;
|
||
gap: 5px;
|
||
align-items: center;
|
||
margin-top: 22px;
|
||
}
|
||
/* 错误/成功共用提示尺寸,随后分别用暖红和浅绿配色表达结果。 */
|
||
.form-error,
|
||
.form-success {
|
||
font-size: 12px;
|
||
line-height: 1.7;
|
||
padding: 10px 12px;
|
||
margin-top: 13px;
|
||
border-radius: 5px;
|
||
}
|
||
.form-error {
|
||
background: #faebe5;
|
||
color: #a34435;
|
||
}
|
||
.form-success {
|
||
background: #eaf0e1;
|
||
color: #557042;
|
||
}
|
||
/* 全局 dashboard 壳体与 CSS Module workspace 壳体并存;以下 icon-rail/workspace-* 是全局命名布局。 */
|
||
.dashboard {
|
||
display: flex;
|
||
min-height: 100dvh;
|
||
background: #fffefb;
|
||
color: #38322c;
|
||
}
|
||
/* 左侧图标轨固定 48px 并高于侧栏,底部动作通过 auto margin 贴底。 */
|
||
.icon-rail {
|
||
width: 48px;
|
||
position: fixed;
|
||
left: 0;
|
||
top: 0;
|
||
bottom: 0;
|
||
background: #f6f3ee;
|
||
border-right: 1px solid #e8e4df;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 17px 4px;
|
||
z-index: 30;
|
||
}
|
||
/* 图标轨导航纵排,hover/active 背景与底色区分。 */
|
||
.rail-nav {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 7px;
|
||
margin-top: 28px;
|
||
}
|
||
.icon-rail button {
|
||
width: 35px;
|
||
height: 35px;
|
||
border-radius: 5px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #776a5e;
|
||
}
|
||
.icon-rail button:hover,
|
||
.icon-rail button.active {
|
||
background: #e9e1d7;
|
||
}
|
||
.rail-bottom {
|
||
margin-top: auto;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 7px;
|
||
}
|
||
/* 共享 UI 图片不被 flex 挤压,并以 contain 保持完整图形。 */
|
||
.ui-icon {
|
||
flex-shrink: 0;
|
||
object-fit: contain;
|
||
}
|
||
/* 全局侧栏固定在 48px 图标轨右侧,宽 235px;主内容初始偏移为两者之和 283px。 */
|
||
.workspace-sidebar {
|
||
width: 235px;
|
||
position: fixed;
|
||
left: 48px;
|
||
top: 0;
|
||
bottom: 0;
|
||
background: #fbf9f5;
|
||
border-right: 1px solid #e8e4df;
|
||
padding: 0 14px;
|
||
z-index: 25;
|
||
}
|
||
/* 工作区切换器提供下拉菜单定位参照,长名称允许省略。 */
|
||
.workspace-switch {
|
||
position: relative;
|
||
border-bottom: 1px solid #e9e4dd;
|
||
margin: 0 -3px;
|
||
padding: 19px 0 14px;
|
||
}
|
||
.workspace-switch > button {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
width: 100%;
|
||
font-size: 12px;
|
||
text-align: left;
|
||
}
|
||
.workspace-switch > button > span:nth-child(2) {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
/* 工作区首字头像居中;下拉菜单绝对定位在切换按钮下方并提高层级。 */
|
||
.workspace-avatar {
|
||
background: #e9e6cc;
|
||
width: 27px;
|
||
height: 27px;
|
||
border-radius: 5px;
|
||
display: grid;
|
||
place-items: center;
|
||
font-size: 16px;
|
||
}
|
||
/* 切换菜单内部按钮整行横排,悬停浅底,是否打开由组件决定。 */
|
||
.workspace-menu {
|
||
position: absolute;
|
||
top: 60px;
|
||
left: 0;
|
||
width: 235px;
|
||
background: #fffcf9;
|
||
border: 1px solid #dfd3c5;
|
||
box-shadow: 0 10px 30px #3f29151c;
|
||
border-radius: 8px;
|
||
padding: 8px;
|
||
z-index: 60;
|
||
}
|
||
.workspace-menu button {
|
||
display: flex;
|
||
gap: 8px;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
width: 100%;
|
||
padding: 10px;
|
||
text-align: left;
|
||
font-size: 12px;
|
||
border-radius: 4px;
|
||
}
|
||
.workspace-menu button:hover {
|
||
background: #f3eae0;
|
||
}
|
||
/* 用户身份行中间文字占剩余空间,小头像兼容首字占位。 */
|
||
.profile-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
padding: 18px 0 21px;
|
||
width: 100%;
|
||
font-size: 11px;
|
||
}
|
||
.profile-row > span:nth-child(2) {
|
||
flex: 1;
|
||
text-align: left;
|
||
}
|
||
.user-avatar {
|
||
width: 24px;
|
||
height: 24px;
|
||
border-radius: 5px;
|
||
background: #ece3d9;
|
||
display: grid;
|
||
place-items: center;
|
||
font-size: 10px;
|
||
color: #78523f;
|
||
}
|
||
/* 目录分组小标题与带附加操作的 flex 标题共用基准间距。 */
|
||
.sidebar-label {
|
||
font-size: 9px;
|
||
color: #a19588;
|
||
letter-spacing: 0.7px;
|
||
margin: 15px 8px 12px;
|
||
}
|
||
.sidebar-label-flex {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-top: 30px;
|
||
}
|
||
/* 侧栏项目整行显示,图标不收缩;hover 与 selected 背景分别表达经过与当前项。 */
|
||
.side-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
padding: 10px 9px;
|
||
width: 100%;
|
||
font-size: 11px;
|
||
text-align: left;
|
||
border-radius: 5px;
|
||
min-height: 34px;
|
||
margin: 3px 0;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
.side-item svg {
|
||
flex-shrink: 0;
|
||
color: #8b7c6b;
|
||
}
|
||
.side-item:hover {
|
||
background: #f0ebe4;
|
||
}
|
||
.side-item.selected {
|
||
background: #eee7df;
|
||
color: #78523f;
|
||
}
|
||
/* 全局弱文字辅助类,只改变颜色。 */
|
||
.muted {
|
||
color: #a49788;
|
||
}
|
||
/* 侧栏底部介绍绝对锚定,含边线、品牌与 demo 徽标,不参与目录流布局。 */
|
||
.sidebar-bottom {
|
||
position: absolute;
|
||
bottom: 21px;
|
||
left: 22px;
|
||
right: 22px;
|
||
border-top: 1px solid #e9e3dc;
|
||
padding-top: 16px;
|
||
}
|
||
.sidebar-bottom > p {
|
||
font-size: 9px;
|
||
color: #a79888;
|
||
margin-bottom: 17px;
|
||
}
|
||
.sidebar-bottom-line {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
.sidebar-bottom .brand {
|
||
font-size: 11px;
|
||
gap: 4px;
|
||
}
|
||
.sidebar-bottom .brand img {
|
||
width: 22px;
|
||
height: 22px;
|
||
}
|
||
.sidebar-bottom .brand small {
|
||
font-size: 9px;
|
||
}
|
||
/* 小字号描边徽标仅提供演示标记外观。 */
|
||
.demo-badge {
|
||
font-size: 8px;
|
||
color: #a58f79;
|
||
border: 1px solid #dcd0be;
|
||
padding: 2px 4px;
|
||
border-radius: 3px;
|
||
}
|
||
/* 主区预留图标轨与侧栏宽度;无侧栏分支随后仅保留 48px 图标轨。 */
|
||
.workspace-main {
|
||
margin-left: 283px;
|
||
width: calc(100% - 283px);
|
||
min-height: 100dvh;
|
||
flex: 1;
|
||
}
|
||
/* 根据实际 DOM 是否存在全局侧栏选择主区偏移,不能仅从业务开关推断此选择器已匹配。 */
|
||
.dashboard:not(:has(.workspace-sidebar)) .workspace-main {
|
||
margin-left: 48px;
|
||
width: calc(100% - 48px);
|
||
}
|
||
/* 全局主区头部高 63px,右侧动作组通过 margin-left:auto 靠右。 */
|
||
.workspace-header {
|
||
height: 63px;
|
||
border-bottom: 1px solid #eee9e2;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 15px;
|
||
padding: 0 27px;
|
||
font-size: 10px;
|
||
color: #8f8173;
|
||
}
|
||
/* 全局小按钮为 28px;与组件模块中的 IconButton 共享尺寸机制不同。 */
|
||
.icon-button {
|
||
display: grid;
|
||
place-items: center;
|
||
width: 28px;
|
||
height: 28px;
|
||
border-radius: 4px;
|
||
color: #8d7f70;
|
||
}
|
||
.icon-button:hover {
|
||
background: #f1ebe3;
|
||
}
|
||
/* 面包屑分隔用弱色,demo 标签另设小字号。 */
|
||
.breadcrumb {
|
||
color: #d2c7b8;
|
||
}
|
||
.header-right {
|
||
display: flex;
|
||
gap: 16px;
|
||
align-items: center;
|
||
margin-left: auto;
|
||
}
|
||
.demo-label {
|
||
font-size: 9px;
|
||
color: #a79783;
|
||
}
|
||
/* 主内容居中并限宽,欢迎文案、快捷创建和图谱网格在内部顺序排布。 */
|
||
.workspace-content {
|
||
max-width: 1190px;
|
||
padding: 56px 64px;
|
||
margin: auto;
|
||
}
|
||
/* 欢迎区为装饰星提供定位参照,标题与说明使用不同字号/颜色。 */
|
||
.welcome-top {
|
||
position: relative;
|
||
}
|
||
.welcome-top .eyebrow {
|
||
font-size: 8px;
|
||
letter-spacing: 1.3px;
|
||
color: #b09b86;
|
||
}
|
||
.welcome-top h1 {
|
||
font-size: 29px;
|
||
letter-spacing: -1px;
|
||
font-weight: 550;
|
||
margin: 17px 0 13px;
|
||
}
|
||
.welcome-top p {
|
||
font-size: 12px;
|
||
color: #a08f7d;
|
||
}
|
||
.welcome-spark {
|
||
position: absolute;
|
||
right: 14px;
|
||
top: -12px;
|
||
font-size: 85px;
|
||
color: #d3c5ad;
|
||
transform: rotate(10deg);
|
||
font-weight: 300;
|
||
}
|
||
/* 两列快捷创建按钮包含图标、文字与靠右箭头,hover 上移并强调边框。 */
|
||
.quick-create {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 17px;
|
||
margin: 36px 0 53px;
|
||
}
|
||
.quick-create > button {
|
||
display: flex;
|
||
gap: 17px;
|
||
align-items: center;
|
||
text-align: left;
|
||
border: 1px solid #e4dcd1;
|
||
border-radius: 8px;
|
||
padding: 18px;
|
||
background: #fffcf8;
|
||
}
|
||
.quick-create > button:hover {
|
||
border-color: #b69b7e;
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 5px 12px #4f301505;
|
||
}
|
||
/* 快捷创建图标底块固定尺寸,peach/olive 只提供底色。 */
|
||
.quick-icon {
|
||
width: 47px;
|
||
height: 47px;
|
||
border-radius: 8px;
|
||
display: grid;
|
||
place-items: center;
|
||
}
|
||
.peach {
|
||
background: #f0e4d7;
|
||
}
|
||
.olive {
|
||
background: #e9e8d2;
|
||
}
|
||
.quick-create > button h3 {
|
||
font-size: 13px;
|
||
font-weight: 500;
|
||
}
|
||
.quick-create > button p {
|
||
font-size: 10px;
|
||
color: #a08e7c;
|
||
margin-top: 6px;
|
||
}
|
||
.quick-create > button > svg {
|
||
margin-left: auto;
|
||
color: #ad9985;
|
||
}
|
||
/* 文件标题和筛选动作横排;搜索输入透明无边框,宽度在响应式中逐步收缩/隐藏。 */
|
||
.files-heading {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 15px;
|
||
}
|
||
.files-heading h2 {
|
||
font-size: 18px;
|
||
letter-spacing: -0.5px;
|
||
}
|
||
.files-heading > div {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
}
|
||
.board-search {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
color: #ad9b86;
|
||
}
|
||
.board-search input {
|
||
border: 0;
|
||
background: transparent;
|
||
width: 135px;
|
||
font-size: 10px;
|
||
padding: 8px 0;
|
||
}
|
||
.board-search input::placeholder {
|
||
color: #baa995;
|
||
}
|
||
/* 文件筛选页签用底部边线,active 只在当前按钮显示主色下划线。 */
|
||
.file-tabs {
|
||
display: flex;
|
||
gap: 25px;
|
||
border-bottom: 1px solid #e9e2d8;
|
||
margin: 17px 0 24px;
|
||
font-size: 10px;
|
||
color: #a08d7a;
|
||
}
|
||
.file-tabs > button {
|
||
padding: 9px 0 13px;
|
||
border-bottom: 2px solid transparent;
|
||
}
|
||
.file-tabs > button.active {
|
||
border-color: #78523f;
|
||
color: #78523f;
|
||
}
|
||
/* 图谱卡片桌面三列,断点后两列/一列;卡片 hover 上移并加阴影。 */
|
||
.board-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, 1fr);
|
||
gap: 21px;
|
||
}
|
||
.board-card {
|
||
border: 1px solid #e4dcd1;
|
||
border-radius: 7px;
|
||
overflow: hidden;
|
||
text-align: left;
|
||
background: #fffdfa;
|
||
transition:
|
||
box-shadow 0.2s,
|
||
transform 0.2s;
|
||
}
|
||
.board-card:hover {
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 9px 24px #49301912;
|
||
}
|
||
/* 封面固定高度并裁剪装饰,cover-0/1/2 提供不同插画布局。 */
|
||
.board-cover {
|
||
height: 190px;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
/* 第一封面用浅纸底与灯光渐变;标题层级高于图形,底部小字独立定位。 */
|
||
.cover-0 {
|
||
background: #f0e5da;
|
||
padding: 20px;
|
||
}
|
||
.cover-title {
|
||
font-family: "Songti SC", serif;
|
||
font-size: 19px;
|
||
color: #80634b;
|
||
position: relative;
|
||
z-index: 2;
|
||
}
|
||
.cover-0 .light-shape {
|
||
width: 70%;
|
||
height: 115px;
|
||
position: absolute;
|
||
right: 10%;
|
||
top: 48px;
|
||
}
|
||
.cover-small {
|
||
position: absolute;
|
||
bottom: 12px;
|
||
font-size: 6px;
|
||
letter-spacing: 1px;
|
||
color: #a28c78;
|
||
}
|
||
/* 第二封面用衬线大字,右下装饰字符可超出裁剪区域。 */
|
||
.cover-1 {
|
||
background: #eae7d2;
|
||
padding: 24px;
|
||
}
|
||
.cover-serif {
|
||
font-family: Georgia, "Songti SC", serif;
|
||
font-size: 28px;
|
||
line-height: 1.15;
|
||
letter-spacing: -1px;
|
||
color: #655b41;
|
||
position: relative;
|
||
z-index: 2;
|
||
}
|
||
.cover-serif i {
|
||
font-weight: 400;
|
||
color: #8e8055;
|
||
}
|
||
.cover-1 > b {
|
||
position: absolute;
|
||
right: -5px;
|
||
bottom: -20px;
|
||
font-size: 145px;
|
||
line-height: 1;
|
||
color: #c8c3a3;
|
||
font-weight: 400;
|
||
}
|
||
/* 第三封面用浅绿底、底部标题和相互重叠的圆圈。 */
|
||
.cover-2 {
|
||
background: #e4e8e1;
|
||
padding: 26px 21px;
|
||
}
|
||
.cover-2 .cover-serif {
|
||
font-size: 22px;
|
||
position: absolute;
|
||
bottom: 20px;
|
||
}
|
||
.cover-circles {
|
||
display: flex;
|
||
position: absolute;
|
||
top: 19px;
|
||
left: 47px;
|
||
}
|
||
.cover-circles span {
|
||
width: 80px;
|
||
height: 80px;
|
||
border: 1px solid #a7b5a5;
|
||
border-radius: 50%;
|
||
margin-left: -25px;
|
||
background: #c4d0be33;
|
||
}
|
||
/* 卡片信息横排,中间文字容器 min-width:0 允许标题省略,不反向撑宽网格。 */
|
||
.board-card-info {
|
||
display: flex;
|
||
gap: 10px;
|
||
align-items: center;
|
||
padding: 16px 14px;
|
||
}
|
||
.board-card-info > div {
|
||
flex: 1;
|
||
min-width: 0;
|
||
}
|
||
.board-card-info h3 {
|
||
font-size: 11px;
|
||
font-weight: 500;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
.board-card-info p {
|
||
font-size: 8px;
|
||
color: #b19e88;
|
||
margin-top: 6px;
|
||
}
|
||
.board-card-info > svg {
|
||
color: #b6a38f;
|
||
}
|
||
/* 底部提示限制装饰图溢出,文字在普通流内,右侧插画绝对定位。 */
|
||
.workspace-tip {
|
||
position: relative;
|
||
border-top: 1px solid #e9e1d6;
|
||
margin-top: 56px;
|
||
padding: 35px 0;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 17px;
|
||
overflow: hidden;
|
||
min-height: 120px;
|
||
}
|
||
.workspace-tip > span {
|
||
font-size: 27px;
|
||
color: #bcaa8e;
|
||
}
|
||
.workspace-tip p {
|
||
font-size: 10px;
|
||
line-height: 1.9;
|
||
color: #ab9781;
|
||
}
|
||
.workspace-tip strong {
|
||
font-weight: 500;
|
||
color: #93806d;
|
||
}
|
||
.workspace-tip > img {
|
||
position: absolute;
|
||
right: 20px;
|
||
top: 10px;
|
||
opacity: 0.7;
|
||
}
|
||
/* 空列表状态纵向居中,给创建动作留出独立间距。 */
|
||
.empty-state {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
min-height: 240px;
|
||
gap: 13px;
|
||
color: #ac9984;
|
||
}
|
||
.empty-state h3 {
|
||
font-size: 16px;
|
||
color: #88735d;
|
||
font-weight: 500;
|
||
}
|
||
.empty-state p {
|
||
font-size: 11px;
|
||
text-align: center;
|
||
}
|
||
.empty-state button {
|
||
margin-top: 8px;
|
||
}
|
||
/* 工作区错误横条让说明/操作分置两侧,提示层不代替业务错误状态。 */
|
||
.workspace-error {
|
||
padding: 14px 25px;
|
||
font-size: 12px;
|
||
background: #fceddf;
|
||
color: #a2583e;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
gap: 15px;
|
||
}
|
||
/* 补充共享对话框输入的上下外边距,其尺寸/边框已在认证输入组合规则定义。 */
|
||
.dialog-input {
|
||
margin-bottom: 23px;
|
||
margin-top: 1px;
|
||
}
|
||
/* 旧全局 toast 固定底部居中并限于 90vw;不要与 sonner 的通知状态存储混为一体。 */
|
||
.toast {
|
||
position: fixed;
|
||
bottom: 25px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
padding: 14px 23px;
|
||
background: #49372e;
|
||
color: #fff9f2;
|
||
display: flex;
|
||
gap: 10px;
|
||
align-items: center;
|
||
font-size: 12px;
|
||
border-radius: 8px;
|
||
box-shadow: 0 8px 25px #38281f33;
|
||
z-index: 100;
|
||
max-width: 90vw;
|
||
}
|
||
/* 页面加载态占满动态视口,以 grid 居中提示内容。 */
|
||
.loading-page {
|
||
display: grid;
|
||
align-content: center;
|
||
justify-content: center;
|
||
gap: 20px;
|
||
min-height: 100dvh;
|
||
}
|
||
.loading-page p {
|
||
font-size: 12px;
|
||
color: #a58d75;
|
||
}
|
||
/* 全局命名的展示画布布局;以下固定舞台/示例纸张样式不表示 headless 文档、视口或几何模型。 */
|
||
.canvas-main {
|
||
height: 100dvh;
|
||
overflow: hidden;
|
||
}
|
||
/* 展示视口扣掉 63px 顶栏高度,允许内部滚动并铺点阵背景。 */
|
||
.canvas-viewport {
|
||
position: relative;
|
||
overflow: auto;
|
||
height: calc(100dvh - 63px);
|
||
background-color: #fafafa;
|
||
background-image: radial-gradient(#cfc9bf 0.6px, transparent 0.6px);
|
||
background-size: 18px 18px;
|
||
}
|
||
/* 展示标题和缩放控制绝对浮在视口上方,与 CSS Module 工作区浮动条的定位规则分开。 */
|
||
.canvas-floating-title {
|
||
position: absolute;
|
||
left: 20px;
|
||
top: 18px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
padding: 10px 14px;
|
||
background: #fff;
|
||
border: 1px solid #e4dcd3;
|
||
border-radius: 7px;
|
||
font-size: 11px;
|
||
z-index: 5;
|
||
box-shadow: 0 2px 10px #291e0c06;
|
||
}
|
||
.canvas-floating-title span {
|
||
font-size: 8px;
|
||
color: #b4a38f;
|
||
margin-left: 10px;
|
||
}
|
||
.canvas-zoom {
|
||
position: absolute;
|
||
right: 20px;
|
||
top: 18px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
font-size: 10px;
|
||
z-index: 5;
|
||
background: white;
|
||
border: 1px solid #e4dcd3;
|
||
border-radius: 7px;
|
||
padding: 5px 8px;
|
||
}
|
||
/* 示例舞台固定为 1050×820,transform-origin 仅设置变换锚点;缩放量不在此声明。 */
|
||
.canvas-stage {
|
||
position: relative;
|
||
width: 1050px;
|
||
height: 820px;
|
||
transform-origin: 50% 40%;
|
||
}
|
||
/* 示例纸张固定位置/宽高,内部用两列三行网格排文本、声音、插画、清单和色板。 */
|
||
.study-board {
|
||
position: absolute;
|
||
top: 145px;
|
||
left: 190px;
|
||
width: 740px;
|
||
height: 600px;
|
||
border: 1px solid #9d7a62;
|
||
background: #fff;
|
||
padding: 33px 31px;
|
||
display: grid;
|
||
grid-template-columns: 268px 310px;
|
||
grid-template-rows: 150px 230px 100px;
|
||
gap: 24px 64px;
|
||
}
|
||
/* 纸张标题放在上边框外,副信息使用小字距;正文与可编辑 textarea 共用排版。 */
|
||
.board-caption {
|
||
position: absolute;
|
||
left: 0;
|
||
top: -28px;
|
||
font-size: 11px;
|
||
}
|
||
.board-caption span {
|
||
font-size: 8px;
|
||
color: #9e9385;
|
||
margin-left: 20px;
|
||
}
|
||
.study-board h3 {
|
||
font-family: "Songti SC", serif;
|
||
font-size: 17px;
|
||
font-weight: 500;
|
||
margin-bottom: 13px;
|
||
}
|
||
.study-board p,
|
||
.study-board textarea {
|
||
font-size: 13px;
|
||
line-height: 1.9;
|
||
color: #54493f;
|
||
}
|
||
/* 示例文本域背景透明,可纵向调整高度,最小高度 75px。 */
|
||
.study-text textarea {
|
||
border: 1px solid transparent;
|
||
resize: vertical;
|
||
min-height: 75px;
|
||
width: 100%;
|
||
padding: 0;
|
||
background: transparent;
|
||
outline: 0;
|
||
}
|
||
/* 声音示例与插画示例各有底色与固定高度,插画复用 light-shape。 */
|
||
.study-sound {
|
||
background: #ede9d0;
|
||
padding: 18px;
|
||
height: 151px;
|
||
margin-top: 0;
|
||
}
|
||
.study-sound p {
|
||
font-size: 12px;
|
||
}
|
||
.study-art {
|
||
background: #fff6ef;
|
||
padding: 22px;
|
||
height: 250px;
|
||
}
|
||
.study-art h3 {
|
||
font-size: 23px;
|
||
color: #49372e;
|
||
}
|
||
.study-art .light-shape {
|
||
height: 145px;
|
||
width: 244px;
|
||
margin-top: 20px;
|
||
}
|
||
/* 清单 label 横排复选框/文字,accent-color 使用主色。 */
|
||
.study-checks {
|
||
margin-top: -8px;
|
||
}
|
||
.study-checks label {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 5px;
|
||
font-size: 12px;
|
||
color: #54493f;
|
||
margin: 4px 0;
|
||
}
|
||
.study-checks input {
|
||
accent-color: #78523f;
|
||
}
|
||
/* 色板标题和色块纵向排列,色块横排且固定尺寸。 */
|
||
.study-palette {
|
||
padding-top: 8px;
|
||
}
|
||
.study-palette small {
|
||
font-size: 11px;
|
||
color: #918272;
|
||
}
|
||
.study-palette > div {
|
||
display: flex;
|
||
gap: 8px;
|
||
margin-top: 12px;
|
||
}
|
||
.study-palette span {
|
||
width: 54px;
|
||
height: 34px;
|
||
border-radius: 3px;
|
||
}
|
||
/* 舞台外便签独立绝对定位,字号与脚注相对纸张内容缩小。 */
|
||
.loose-note {
|
||
position: absolute;
|
||
left: 20px;
|
||
top: 310px;
|
||
width: 140px;
|
||
height: 220px;
|
||
padding: 18px 16px;
|
||
background: #fff;
|
||
border: 1px solid #e6ddd2;
|
||
border-radius: 7px;
|
||
}
|
||
.loose-note small {
|
||
font-size: 12px;
|
||
}
|
||
.loose-note p {
|
||
margin: 25px 0;
|
||
font-size: 12px;
|
||
line-height: 1.9;
|
||
}
|
||
.loose-note > span {
|
||
font-size: 9px;
|
||
color: #a39380;
|
||
}
|
||
/* 旧展示工具栏固定在视口底部,额外向右偏移 100px 适配侧栏;窄屏断点调整该偏移。 */
|
||
.canvas-toolbar {
|
||
position: fixed;
|
||
bottom: 19px;
|
||
left: calc(50% + 100px);
|
||
transform: translateX(-50%);
|
||
display: flex;
|
||
padding: 5px;
|
||
background: #fff;
|
||
border: 1px solid #ded5c9;
|
||
box-shadow: 0 5px 16px #291e0c0c;
|
||
border-radius: 9px;
|
||
gap: 4px;
|
||
z-index: 12;
|
||
}
|
||
.canvas-toolbar > button {
|
||
width: 36px;
|
||
height: 32px;
|
||
display: grid;
|
||
place-items: center;
|
||
border-radius: 5px;
|
||
}
|
||
/* 首按钮即使未 hover 也有底色,这条样式本身不读取 activeTool。 */
|
||
.canvas-toolbar > button:first-child,
|
||
.canvas-toolbar > button:hover {
|
||
background: #f2e8e1;
|
||
}
|
||
/* 图层区域标题把操作图标推到最右,图层行只提供缩进和字号。 */
|
||
.layer-label {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
padding: 25px 8px 15px;
|
||
font-size: 11px;
|
||
}
|
||
.layer-label > svg {
|
||
margin-left: auto;
|
||
}
|
||
.layer {
|
||
font-size: 11px;
|
||
padding: 8px 12px;
|
||
}
|
||
/* 展示用新建便签绝对定位,文本域可纵向伸展,删除按钮固定右上。 */
|
||
.new-canvas-node {
|
||
position: absolute;
|
||
left: 65px;
|
||
top: 70px;
|
||
background: #eeebcf;
|
||
padding: 18px;
|
||
width: 210px;
|
||
border: 1px solid #d5cdb0;
|
||
z-index: 8;
|
||
}
|
||
.new-canvas-node textarea {
|
||
width: 100%;
|
||
height: 90px;
|
||
font-size: 12px;
|
||
background: none;
|
||
resize: vertical;
|
||
}
|
||
.new-canvas-node button {
|
||
position: absolute;
|
||
right: 5px;
|
||
top: 5px;
|
||
}
|
||
/* 全局演示深色效果用滤镜反转/色相旋转;后续图片/封面再次反转以补偿,并非完整主题 token 切换。 */
|
||
.dark-workspace {
|
||
filter: invert(0.87) hue-rotate(180deg);
|
||
}
|
||
.dark-workspace img,
|
||
.dark-workspace .board-cover,
|
||
.dark-workspace .light-shape {
|
||
filter: invert(1) hue-rotate(180deg);
|
||
}
|
||
/* 超宽屏增大主内容留白/封面高度,并调整登录故事的水平位置与拼贴间距。 */
|
||
@media (min-width: 1600px) {
|
||
/* 超宽屏增加工作区顶部留白和封面高度,不改变网格列数。 */
|
||
.workspace-content {
|
||
padding-top: 75px;
|
||
}
|
||
.board-cover {
|
||
height: 220px;
|
||
}
|
||
/* 登录故事按最大内容宽度向内对齐,文案与拼贴增加上下距离。 */
|
||
.auth-story {
|
||
padding-left: max(40px, calc((100vw - 1300px) / 2));
|
||
}
|
||
.auth-story-copy {
|
||
margin-top: 125px;
|
||
}
|
||
.auth-collage {
|
||
margin-top: 55px;
|
||
}
|
||
}
|
||
/* 1100px 以下压缩全局页面与登录拼贴;侧栏收为 215px,主区相应偏移 263px。 */
|
||
@media (max-width: 1100px) {
|
||
/* 中屏缩小页面左右留白,导航链接间距和品牌字号一起压缩。 */
|
||
.container {
|
||
width: calc(100% - 72px);
|
||
}
|
||
.site-nav {
|
||
padding: 0 36px;
|
||
}
|
||
.site-nav nav {
|
||
gap: 20px;
|
||
}
|
||
.brand {
|
||
font-size: 17px;
|
||
}
|
||
.brand small {
|
||
font-size: 11px;
|
||
}
|
||
/* 人物间距与图注缩小,隐藏图注编号,图片高度交回固有比例。 */
|
||
.people-row {
|
||
gap: 20px;
|
||
}
|
||
.people-row figcaption {
|
||
gap: 6px;
|
||
font-size: 9px;
|
||
}
|
||
.people-row figcaption span {
|
||
display: none;
|
||
}
|
||
.people-row img {
|
||
height: auto;
|
||
}
|
||
/* 首屏留白和预览整体高度缩小;纸张/图稿 padding、字号与便签文字同步调整。 */
|
||
.hero {
|
||
padding-top: 70px;
|
||
}
|
||
.product-preview {
|
||
grid-template-columns: 170px 1fr;
|
||
height: 490px;
|
||
}
|
||
.preview-note {
|
||
padding: 22px 16px;
|
||
}
|
||
.preview-note h3 {
|
||
font-size: 21px;
|
||
}
|
||
.preview-art {
|
||
padding: 20px;
|
||
height: 235px;
|
||
}
|
||
.preview-art .light-shape {
|
||
height: 145px;
|
||
}
|
||
.preview-sticky {
|
||
font-size: 10px;
|
||
}
|
||
/* 工具插画缩小大字,工作流列间距、页脚和结尾区留白也一并收紧。 */
|
||
.type-art {
|
||
font-size: 54px;
|
||
padding-left: 25px;
|
||
}
|
||
.type-art i {
|
||
font-size: 140px;
|
||
}
|
||
.workflow {
|
||
gap: 60px;
|
||
}
|
||
.site-footer {
|
||
padding: 30px 36px;
|
||
}
|
||
.site-footer > span {
|
||
display: none;
|
||
}
|
||
.closing {
|
||
padding-left: 36px;
|
||
}
|
||
/* 登录故事/拼贴改用更小卡片与内边距,右侧表单减小水平留白。 */
|
||
.auth-story {
|
||
padding: 32px 28px;
|
||
}
|
||
.auth-story-copy h1 {
|
||
font-size: 35px;
|
||
}
|
||
.auth-story-copy > p {
|
||
font-size: 11px;
|
||
}
|
||
.auth-collage {
|
||
margin-top: 45px;
|
||
height: 290px;
|
||
}
|
||
.auth-art,
|
||
.auth-note {
|
||
width: 180px;
|
||
padding: 20px;
|
||
}
|
||
.auth-art {
|
||
left: 43%;
|
||
height: 250px;
|
||
}
|
||
.auth-art .light-shape {
|
||
height: 125px;
|
||
}
|
||
.auth-note {
|
||
height: 225px;
|
||
}
|
||
.auth-note h2 {
|
||
font-size: 22px;
|
||
}
|
||
.auth-story > footer {
|
||
left: 28px;
|
||
}
|
||
.auth-main {
|
||
padding: 90px 38px;
|
||
}
|
||
/* 全局工作区边距收紧,侧栏 215px 与主区 263px 偏移相配。 */
|
||
.workspace-content {
|
||
padding: 43px 35px;
|
||
}
|
||
.workspace-sidebar {
|
||
width: 215px;
|
||
}
|
||
.workspace-main {
|
||
margin-left: 263px;
|
||
width: calc(100% - 263px);
|
||
}
|
||
/* 图谱仍为三列,只缩小间隙、封面和文字,隐藏信息行中的次要图标。 */
|
||
.board-grid {
|
||
gap: 14px;
|
||
}
|
||
.board-cover {
|
||
height: 165px;
|
||
}
|
||
.cover-serif {
|
||
font-size: 24px;
|
||
}
|
||
.board-card-info {
|
||
padding: 14px 10px;
|
||
}
|
||
.board-card-info > .ui-icon {
|
||
display: none;
|
||
}
|
||
/* 快捷创建按钮减少 padding/图标尺寸,欢迎区装饰和搜索框也随之缩小。 */
|
||
.quick-create {
|
||
gap: 12px;
|
||
}
|
||
.quick-create > button {
|
||
padding: 14px 12px;
|
||
gap: 10px;
|
||
}
|
||
.quick-icon {
|
||
height: 40px;
|
||
width: 40px;
|
||
}
|
||
.welcome-top h1 {
|
||
font-size: 26px;
|
||
}
|
||
.welcome-spark {
|
||
font-size: 65px;
|
||
}
|
||
.board-search input {
|
||
width: 100px;
|
||
}
|
||
}
|
||
/* 800px 以下隐藏导航链接和登录故事,章节标题改纵排、图谱网格改两列;全局侧栏收为 195px。 */
|
||
@media (max-width: 800px) {
|
||
/* 隐藏全局导航链接,保留品牌与操作;后置 grid 覆盖并不重新显示这些链接。 */
|
||
.site-nav nav {
|
||
display: none;
|
||
}
|
||
/* 首屏标题与人物图注进一步缩小,图注允许换行。 */
|
||
.hero h1 {
|
||
font-size: 45px;
|
||
letter-spacing: -2px;
|
||
}
|
||
.hero-stroke {
|
||
width: 165px;
|
||
}
|
||
.people-row {
|
||
margin-top: 45px;
|
||
gap: 12px;
|
||
}
|
||
.people-row figcaption {
|
||
font-size: 8px;
|
||
white-space: normal;
|
||
}
|
||
/* 章节标题/说明从横排改为纵排,减少区块上下距离。 */
|
||
.section-heading {
|
||
align-items: flex-start;
|
||
flex-direction: column;
|
||
gap: 15px;
|
||
margin-bottom: 30px;
|
||
}
|
||
.space-section {
|
||
padding: 70px 0;
|
||
}
|
||
.section-heading h2,
|
||
h2 {
|
||
font-size: 32px;
|
||
}
|
||
.section-heading p {
|
||
font-size: 12px;
|
||
}
|
||
/* 预览侧栏压到 140px,隐藏副标/底注;画布卡片按百分比重新定位并缩小。 */
|
||
.product-preview {
|
||
grid-template-columns: 140px 1fr;
|
||
height: 420px;
|
||
}
|
||
.preview-sidebar {
|
||
padding: 20px 12px;
|
||
font-size: 9px;
|
||
}
|
||
.preview-sidebar .brand small {
|
||
display: none;
|
||
}
|
||
.preview-sidebar > small {
|
||
display: none;
|
||
}
|
||
.preview-note {
|
||
width: 38%;
|
||
left: 5%;
|
||
padding: 18px 13px;
|
||
top: 23%;
|
||
}
|
||
.preview-note h3 {
|
||
font-size: 18px;
|
||
}
|
||
.preview-note p {
|
||
font-size: 8px;
|
||
}
|
||
.preview-art {
|
||
width: 42%;
|
||
left: 51%;
|
||
height: 190px;
|
||
padding: 18px 15px;
|
||
top: 25%;
|
||
}
|
||
.preview-art .light-shape {
|
||
height: 115px;
|
||
}
|
||
.preview-art > span {
|
||
font-size: 16px;
|
||
}
|
||
.preview-sticky {
|
||
top: 73%;
|
||
width: 43%;
|
||
left: 43%;
|
||
padding: 10px 14px;
|
||
font-size: 9px;
|
||
}
|
||
.preview-sticky span {
|
||
font-size: 25px;
|
||
}
|
||
.preview-tools {
|
||
left: 18%;
|
||
font-size: 12px;
|
||
bottom: 10px;
|
||
padding: 10px 15px;
|
||
}
|
||
/* 工具卡与插画缩小字号/间距,保留双列工具网格;下一断点才改单列。 */
|
||
.tools-section {
|
||
padding-top: 70px;
|
||
padding-bottom: 70px;
|
||
}
|
||
.tool-card {
|
||
padding: 20px;
|
||
}
|
||
.tool-card h3 {
|
||
font-size: 21px;
|
||
}
|
||
.tool-card p {
|
||
font-size: 11px;
|
||
}
|
||
.type-art,
|
||
.canvas-art {
|
||
height: 240px;
|
||
}
|
||
.type-art {
|
||
font-size: 48px;
|
||
padding: 25px 20px;
|
||
}
|
||
.type-art > span {
|
||
font-size: 30px;
|
||
}
|
||
.type-art i {
|
||
font-size: 110px;
|
||
right: 8px;
|
||
bottom: 5px;
|
||
}
|
||
.canvas-art > span {
|
||
left: 15px;
|
||
padding: 15px 10px;
|
||
font-size: 11px;
|
||
}
|
||
.canvas-art > span:nth-of-type(2) {
|
||
right: 15px;
|
||
}
|
||
.canvas-art > b {
|
||
font-size: 20px;
|
||
left: 12%;
|
||
}
|
||
/* 灵感卡片和工作流压缩间距/字号,FAQ 与结尾区减少留白。 */
|
||
.ideas-section {
|
||
padding: 65px 0;
|
||
}
|
||
.idea-grid {
|
||
gap: 25px;
|
||
}
|
||
.idea-grid h3 {
|
||
font-size: 15px;
|
||
}
|
||
.idea-grid p {
|
||
font-size: 11px;
|
||
}
|
||
.workflow {
|
||
padding-top: 70px;
|
||
padding-bottom: 70px;
|
||
gap: 35px;
|
||
}
|
||
.workflow h2 {
|
||
font-size: 30px;
|
||
}
|
||
.workflow li {
|
||
gap: 15px;
|
||
}
|
||
.workflow li h3 {
|
||
font-size: 14px;
|
||
}
|
||
.workflow li p {
|
||
font-size: 11px;
|
||
}
|
||
.faq {
|
||
padding-bottom: 70px;
|
||
}
|
||
.faq h2 {
|
||
font-size: 26px;
|
||
}
|
||
.closing {
|
||
padding: 60px 36px;
|
||
}
|
||
.closing h2 {
|
||
font-size: 36px;
|
||
}
|
||
.closing-star {
|
||
right: -40px;
|
||
font-size: 290px;
|
||
top: 30px;
|
||
opacity: 0.6;
|
||
}
|
||
/* 页脚允许换行,并隐藏非品牌的直系链接。 */
|
||
.site-footer {
|
||
flex-wrap: wrap;
|
||
gap: 17px;
|
||
}
|
||
.site-footer p {
|
||
font-size: 9px;
|
||
}
|
||
.site-footer > a:not(.brand) {
|
||
display: none;
|
||
}
|
||
/* 移除登录故事列,auth-page 改 block,表单区独占至少一个动态视口高度。 */
|
||
.auth-story {
|
||
display: none;
|
||
}
|
||
.auth-page {
|
||
display: block;
|
||
}
|
||
.auth-main {
|
||
min-height: 100dvh;
|
||
padding: 110px 28px 55px;
|
||
}
|
||
.auth-back {
|
||
right: 28px;
|
||
top: 28px;
|
||
}
|
||
.auth-form-wrap {
|
||
max-width: 390px;
|
||
}
|
||
.auth-form-wrap > h1 {
|
||
font-size: 30px;
|
||
}
|
||
/* 侧栏缩到 195px,主区偏移 243px;图谱改两列,快捷创建改一列。 */
|
||
.workspace-content {
|
||
padding: 40px 25px;
|
||
}
|
||
.workspace-sidebar {
|
||
width: 195px;
|
||
padding: 0 10px;
|
||
}
|
||
.workspace-main {
|
||
margin-left: 243px;
|
||
width: calc(100% - 243px);
|
||
}
|
||
.board-grid {
|
||
grid-template-columns: 1fr 1fr;
|
||
}
|
||
.quick-create {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.quick-create > button {
|
||
padding: 14px;
|
||
}
|
||
.welcome-top h1 {
|
||
font-size: 24px;
|
||
}
|
||
.welcome-top p {
|
||
font-size: 11px;
|
||
max-width: 75%;
|
||
line-height: 1.9;
|
||
}
|
||
.welcome-spark {
|
||
font-size: 50px;
|
||
top: 13px;
|
||
}
|
||
/* 隐藏头部 demo 标签与图谱搜索,筛选动作缩小,减少头部拥挤。 */
|
||
.header-right .demo-label {
|
||
display: none;
|
||
}
|
||
.workspace-header {
|
||
padding: 0 16px;
|
||
gap: 10px;
|
||
}
|
||
.files-heading {
|
||
align-items: flex-start;
|
||
}
|
||
.files-heading > div {
|
||
gap: 5px;
|
||
}
|
||
.files-heading button {
|
||
font-size: 10px;
|
||
padding: 0 9px;
|
||
}
|
||
.board-search {
|
||
display: none;
|
||
}
|
||
.board-cover {
|
||
height: 170px;
|
||
}
|
||
.board-card-info h3 {
|
||
font-size: 10px;
|
||
}
|
||
.cover-title {
|
||
font-size: 16px;
|
||
}
|
||
.workspace-tip img {
|
||
right: -25px;
|
||
opacity: 0.35;
|
||
}
|
||
/* 仅调整展示舞台的变换原点、缩放控件高度与工具条偏移,不改变业务画布坐标。 */
|
||
.canvas-stage {
|
||
transform-origin: 20% 40%;
|
||
}
|
||
.canvas-zoom {
|
||
top: 70px;
|
||
}
|
||
.canvas-toolbar {
|
||
left: calc(50% + 75px);
|
||
}
|
||
}
|
||
/* 560px 以下按单列内容收拢:人物仅留前三项,工具/灵感/工作流/图谱转单列,全局侧栏隐藏。 */
|
||
@media (max-width: 560px) {
|
||
/* 手机边距收为两侧 20px,导航缩高,品牌副标与第一个次要动作隐藏。 */
|
||
.container {
|
||
width: calc(100% - 40px);
|
||
}
|
||
.site-nav {
|
||
height: 74px;
|
||
padding: 0 20px;
|
||
gap: 12px;
|
||
}
|
||
.site-nav .brand {
|
||
font-size: 16px;
|
||
}
|
||
.site-nav .brand img {
|
||
width: 31px;
|
||
height: 31px;
|
||
}
|
||
.site-nav .brand small {
|
||
display: none;
|
||
}
|
||
.nav-actions {
|
||
gap: 15px;
|
||
font-size: 11px;
|
||
}
|
||
.nav-actions > a:first-child {
|
||
display: none;
|
||
}
|
||
.nav-actions .inline-flex {
|
||
font-size: 11px;
|
||
height: 34px;
|
||
padding: 0 12px;
|
||
}
|
||
/* 首屏标题/引题/正文/按钮进一步缩小,人物网格改三列并隐藏第四项起的 figure。 */
|
||
.hero {
|
||
padding-top: 55px;
|
||
}
|
||
.hero .eyebrow {
|
||
font-size: 7px;
|
||
letter-spacing: 1.1px;
|
||
}
|
||
.hero h1 {
|
||
font-size: 33px;
|
||
letter-spacing: -1.8px;
|
||
line-height: 1.6;
|
||
margin-top: 21px;
|
||
}
|
||
.hero-stroke {
|
||
width: 120px;
|
||
height: 12px;
|
||
bottom: 0;
|
||
}
|
||
.hero-copy {
|
||
font-size: 11px;
|
||
margin-top: 25px;
|
||
}
|
||
.hero-actions {
|
||
gap: 18px;
|
||
margin-top: 25px;
|
||
}
|
||
.hero-actions .text-link {
|
||
font-size: 9px;
|
||
gap: 6px;
|
||
}
|
||
.hero-actions > a:first-child {
|
||
min-width: 125px;
|
||
font-size: 11px;
|
||
height: 42px;
|
||
}
|
||
.people-row {
|
||
gap: 8px;
|
||
margin-top: 50px;
|
||
grid-template-columns: repeat(3, 1fr);
|
||
}
|
||
.people-row figure:nth-child(n + 4) {
|
||
display: none;
|
||
}
|
||
.people-row figcaption {
|
||
font-size: 8px;
|
||
line-height: 1.5;
|
||
margin-top: 14px;
|
||
}
|
||
.people-row figure:nth-child(2) {
|
||
padding-top: 6px;
|
||
}
|
||
/* 首屏底注与章节引题缩小字距/字号;二级标题在本断点降到 28px。 */
|
||
.hero-footnote {
|
||
font-size: 6px;
|
||
letter-spacing: 0.8px;
|
||
margin-top: 30px;
|
||
padding: 17px 0 20px;
|
||
}
|
||
.hero-footnote span:last-child {
|
||
font-size: 7px;
|
||
}
|
||
.section-heading .eyebrow,
|
||
.eyebrow {
|
||
font-size: 8px;
|
||
letter-spacing: 1px;
|
||
}
|
||
.section-heading h2,
|
||
h2 {
|
||
font-size: 28px;
|
||
}
|
||
.section-heading p {
|
||
font-size: 10px;
|
||
}
|
||
.space-section {
|
||
padding: 50px 0;
|
||
}
|
||
/* 预览高度降为 330px、侧栏仅 85px,内部文字/卡片/工具条按手机比例缩小。 */
|
||
.product-preview {
|
||
height: 330px;
|
||
grid-template-columns: 85px 1fr;
|
||
border-radius: 6px;
|
||
}
|
||
.preview-sidebar {
|
||
padding: 18px 7px;
|
||
font-size: 6px;
|
||
}
|
||
.preview-sidebar .brand {
|
||
font-size: 8px;
|
||
gap: 3px;
|
||
margin-bottom: 18px;
|
||
}
|
||
.preview-sidebar .brand img {
|
||
width: 18px;
|
||
height: 18px;
|
||
}
|
||
.preview-sidebar > p {
|
||
margin-bottom: 18px;
|
||
font-size: 6px;
|
||
}
|
||
.preview-sidebar > div {
|
||
padding: 7px 2px;
|
||
}
|
||
.preview-bar {
|
||
font-size: 7px;
|
||
padding: 13px 10px;
|
||
height: 36px;
|
||
}
|
||
.preview-note {
|
||
width: 40%;
|
||
padding: 14px 9px;
|
||
}
|
||
.preview-note small {
|
||
font-size: 4px;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
.preview-note h3 {
|
||
font-size: 12px;
|
||
margin: 15px 0 12px;
|
||
line-height: 1.65;
|
||
}
|
||
.preview-note p {
|
||
font-size: 6px;
|
||
}
|
||
.preview-art {
|
||
padding: 12px 10px;
|
||
height: 145px;
|
||
top: 27%;
|
||
width: 42%;
|
||
}
|
||
.preview-art .light-shape {
|
||
height: 85px;
|
||
}
|
||
.preview-art > span {
|
||
font-size: 11px;
|
||
margin-top: 10px;
|
||
}
|
||
.preview-sticky {
|
||
font-size: 6px;
|
||
top: 74%;
|
||
padding: 9px;
|
||
width: 47%;
|
||
left: 38%;
|
||
}
|
||
.preview-sticky span {
|
||
font-size: 20px;
|
||
}
|
||
.preview-tools {
|
||
left: 15%;
|
||
font-size: 9px;
|
||
padding: 8px 12px;
|
||
border-radius: 5px;
|
||
}
|
||
/* 工具网格改一列并恢复插画一定高度,正文移除最小高度,减少单列多余空白。 */
|
||
.tools-section {
|
||
padding-top: 50px;
|
||
padding-bottom: 50px;
|
||
}
|
||
.tool-grid {
|
||
grid-template-columns: 1fr;
|
||
gap: 20px;
|
||
}
|
||
.tool-card {
|
||
padding: 21px;
|
||
}
|
||
.type-art,
|
||
.canvas-art {
|
||
height: 260px;
|
||
}
|
||
.type-art {
|
||
font-size: 58px;
|
||
}
|
||
.type-art i {
|
||
font-size: 155px;
|
||
}
|
||
.type-art > span {
|
||
font-size: 35px;
|
||
}
|
||
.tool-card h3 {
|
||
font-size: 22px;
|
||
margin-top: 24px;
|
||
}
|
||
.tool-card p {
|
||
min-height: 0;
|
||
font-size: 11px;
|
||
}
|
||
.tool-card .text-link {
|
||
font-size: 11px;
|
||
margin-top: 18px;
|
||
}
|
||
/* 灵感网格改一列,每项图片绝对靠左、文字留出 95px,形成紧凑图文行。 */
|
||
.ideas-section {
|
||
padding: 50px 0;
|
||
}
|
||
.idea-grid {
|
||
grid-template-columns: 1fr;
|
||
gap: 28px;
|
||
margin-top: 30px;
|
||
}
|
||
.idea-grid article {
|
||
position: relative;
|
||
padding-left: 95px;
|
||
min-height: 85px;
|
||
padding-top: 6px;
|
||
}
|
||
.idea-grid article img {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
width: 75px;
|
||
height: 75px;
|
||
}
|
||
.idea-grid p {
|
||
font-size: 10px;
|
||
max-width: none;
|
||
}
|
||
.idea-grid h3 {
|
||
font-size: 15px;
|
||
}
|
||
/* 工作流改一列,步骤和 FAQ/结尾区间距缩小。 */
|
||
.workflow {
|
||
grid-template-columns: 1fr;
|
||
gap: 20px;
|
||
padding-top: 50px;
|
||
padding-bottom: 55px;
|
||
}
|
||
.workflow h2 {
|
||
font-size: 28px;
|
||
}
|
||
.workflow li {
|
||
padding: 20px 0;
|
||
}
|
||
.workflow li h3 {
|
||
font-size: 15px;
|
||
}
|
||
.faq h2 {
|
||
font-size: 23px;
|
||
line-height: 1.7;
|
||
margin-bottom: 23px;
|
||
}
|
||
.faq-item button {
|
||
font-size: 11px;
|
||
padding: 20px 0;
|
||
}
|
||
.faq-item p {
|
||
font-size: 10px;
|
||
}
|
||
.faq {
|
||
padding-bottom: 50px;
|
||
}
|
||
.closing {
|
||
padding: 55px 20px;
|
||
}
|
||
.closing h2 {
|
||
font-size: 31px;
|
||
}
|
||
.closing p {
|
||
font-size: 10px;
|
||
}
|
||
.closing-star {
|
||
font-size: 220px;
|
||
right: -55px;
|
||
top: 45px;
|
||
}
|
||
.closing .inline-flex {
|
||
font-size: 11px;
|
||
}
|
||
/* 页脚品牌与说明减小字号,其余隐藏状态继续承接上个断点。 */
|
||
.site-footer {
|
||
padding: 25px 20px;
|
||
gap: 14px;
|
||
}
|
||
.site-footer .brand {
|
||
font-size: 12px;
|
||
}
|
||
.site-footer .brand small {
|
||
font-size: 8px;
|
||
}
|
||
.site-footer p {
|
||
font-size: 8px;
|
||
}
|
||
/* 全局侧栏先隐藏,主区只保留 48px 图标轨;末尾 sidebar-only 例外会恢复侧栏显示。 */
|
||
.workspace-sidebar {
|
||
display: none;
|
||
}
|
||
.workspace-main {
|
||
margin-left: 48px;
|
||
width: calc(100% - 48px);
|
||
}
|
||
.dashboard .workspace-main {
|
||
margin-left: 48px;
|
||
width: calc(100% - 48px);
|
||
}
|
||
.workspace-content {
|
||
padding: 30px 18px;
|
||
}
|
||
/* 头部减高到 55px,隐藏直系图标按钮;欢迎区和快捷创建缩小间距。 */
|
||
.workspace-header {
|
||
padding: 0 12px;
|
||
font-size: 8px;
|
||
height: 55px;
|
||
gap: 8px;
|
||
}
|
||
.workspace-header > .icon-button {
|
||
display: none;
|
||
}
|
||
.header-right {
|
||
gap: 5px;
|
||
}
|
||
.workspace-content .eyebrow {
|
||
font-size: 6px;
|
||
letter-spacing: 0.6px;
|
||
}
|
||
.welcome-top h1 {
|
||
font-size: 22px;
|
||
margin-top: 14px;
|
||
line-height: 1.6;
|
||
max-width: 85%;
|
||
}
|
||
.welcome-top p {
|
||
font-size: 10px;
|
||
max-width: 85%;
|
||
}
|
||
.welcome-spark {
|
||
font-size: 37px;
|
||
right: -1px;
|
||
top: 35px;
|
||
}
|
||
.quick-create {
|
||
margin: 25px 0 35px;
|
||
gap: 10px;
|
||
}
|
||
.quick-create > button h3 {
|
||
font-size: 12px;
|
||
}
|
||
.quick-create > button p {
|
||
font-size: 9px;
|
||
}
|
||
.quick-icon {
|
||
width: 35px;
|
||
height: 35px;
|
||
}
|
||
.quick-icon img {
|
||
width: 20px !important;
|
||
height: 20px !important;
|
||
}
|
||
.files-heading h2 {
|
||
font-size: 16px;
|
||
}
|
||
.files-heading button {
|
||
height: 29px;
|
||
}
|
||
.file-tabs {
|
||
gap: 20px;
|
||
margin-bottom: 18px;
|
||
font-size: 9px;
|
||
}
|
||
/* 图谱改单列并增大单卡封面,信息文字和先前隐藏的 ui-icon 恢复为手机卡片尺寸。 */
|
||
.board-grid {
|
||
grid-template-columns: 1fr;
|
||
gap: 18px;
|
||
}
|
||
.board-cover {
|
||
height: 215px;
|
||
}
|
||
.board-card-info {
|
||
padding: 15px;
|
||
}
|
||
.board-card-info h3 {
|
||
font-size: 12px;
|
||
}
|
||
.board-card-info p {
|
||
font-size: 9px;
|
||
}
|
||
.board-card-info > .ui-icon {
|
||
display: block;
|
||
}
|
||
.cover-title {
|
||
font-size: 24px;
|
||
}
|
||
.cover-0 .light-shape {
|
||
height: 135px;
|
||
width: 65%;
|
||
}
|
||
.cover-serif {
|
||
font-size: 33px;
|
||
}
|
||
.cover-2 .cover-serif {
|
||
font-size: 27px;
|
||
}
|
||
.cover-circles {
|
||
left: 80px;
|
||
top: 25px;
|
||
}
|
||
.cover-circles span {
|
||
width: 100px;
|
||
height: 100px;
|
||
}
|
||
.cover-small {
|
||
font-size: 7px;
|
||
}
|
||
/* 底部提示图/文字收紧,展示画布工具条重新计算偏移并缩小按钮。 */
|
||
.workspace-tip {
|
||
margin-top: 30px;
|
||
padding: 25px 0;
|
||
}
|
||
.workspace-tip p {
|
||
font-size: 9px;
|
||
}
|
||
.workspace-tip img {
|
||
width: 80px;
|
||
height: 90px;
|
||
right: -5px;
|
||
top: 12px;
|
||
}
|
||
.workspace-tip > span {
|
||
font-size: 21px;
|
||
}
|
||
.canvas-toolbar {
|
||
left: calc(50% + 24px);
|
||
gap: 0;
|
||
}
|
||
.canvas-toolbar button {
|
||
width: 29px;
|
||
}
|
||
.canvas-toolbar img {
|
||
width: 16px !important;
|
||
height: 16px !important;
|
||
}
|
||
/* 展示舞台改左上变换原点,缩放条改左侧;视口扣除 55px 手机头部高度。 */
|
||
.canvas-stage {
|
||
transform-origin: 0 0;
|
||
}
|
||
.canvas-zoom {
|
||
top: 66px;
|
||
left: 18px;
|
||
right: auto;
|
||
}
|
||
.canvas-floating-title {
|
||
font-size: 10px;
|
||
}
|
||
.canvas-viewport {
|
||
height: calc(100dvh - 55px);
|
||
}
|
||
/* 旧 toast 使用小字与最小宽度,登录表单顶部留白也略作调整。 */
|
||
.toast {
|
||
font-size: 10px;
|
||
min-width: 200px;
|
||
text-align: left;
|
||
}
|
||
.auth-main {
|
||
padding-top: 105px;
|
||
}
|
||
.auth-form-wrap > .eyebrow {
|
||
font-size: 7px;
|
||
}
|
||
}
|
||
/* 全局减少动态效果:关闭平滑滚动,并以 important 关闭元素及伪元素的 animation/transition。 */
|
||
@media (prefers-reduced-motion: reduce) {
|
||
html {
|
||
scroll-behavior: auto;
|
||
}
|
||
*,
|
||
*:before,
|
||
*:after {
|
||
animation: none !important;
|
||
transition: none !important;
|
||
}
|
||
}
|
||
|
||
/* 链接主色按钮使用浅文字;以下是位于媒体查询之后的后置覆盖,仍按选择器优先级与源码顺序参与层叠。 */
|
||
a.bg-primary {
|
||
color: #fff9f4;
|
||
}
|
||
/* 后置覆盖把导航改为 auto/1fr/auto 三列 grid;没有重置前面媒体查询的 padding/height。 */
|
||
.site-nav {
|
||
display: grid;
|
||
grid-template-columns: auto 1fr auto;
|
||
}
|
||
/* 后置覆盖让导航链接在中间列居中;800px 查询中的 display:none 仍然保留。 */
|
||
.site-nav nav {
|
||
justify-content: center;
|
||
}
|
||
/* 标题宽度改 fit-content,为后面强调 span 装饰保持紧贴文字的布局。 */
|
||
.hero h1 {
|
||
width: fit-content;
|
||
}
|
||
/* 先调整旧装饰线锚点/比例;再下一条同名规则将其隐藏,因此这不是最终可见装饰。 */
|
||
.hero-stroke {
|
||
right: 0;
|
||
width: 30%;
|
||
}
|
||
|
||
/* 配合后置 grid,动作区自身靠右对齐。 */
|
||
.nav-actions {
|
||
justify-self: end;
|
||
}
|
||
/* 最终隐藏旧 hero-stroke 元素;下方 span:after 代替它绘制装饰线。 */
|
||
.hero-stroke {
|
||
display: none;
|
||
}
|
||
/* 强调 span 成为伪元素定位参照。 */
|
||
.hero h1 span {
|
||
position: relative;
|
||
}
|
||
/* 在强调文字下方绘制旋转的圆角色条,content 为空不加入实际文案。 */
|
||
.hero h1 span:after {
|
||
content: "";
|
||
position: absolute;
|
||
bottom: -7px;
|
||
left: 0;
|
||
right: 0;
|
||
height: 5px;
|
||
border-radius: 50%;
|
||
background: #bca381;
|
||
transform: rotate(-3deg);
|
||
}
|
||
/* demo 标签内按钮用下划线表达可点,和普通说明分开。 */
|
||
.demo-label button {
|
||
text-decoration: underline;
|
||
margin-left: 9px;
|
||
font-size: 8px;
|
||
}
|
||
|
||
/* 共享对话框标题与说明统一字号、字距和行高。 */
|
||
.dialog-title {
|
||
font-size: 20px;
|
||
line-height: 1.5;
|
||
letter-spacing: -0.4px;
|
||
font-weight: 600;
|
||
}
|
||
.dialog-description {
|
||
font-size: 12px;
|
||
line-height: 1.8;
|
||
}
|
||
|
||
/* Keep the sidebar-only dashboard accessible at narrow viewport widths. */
|
||
/* 侧栏专用页面后置恢复 display:block,覆盖窄屏的全局侧栏隐藏规则,并给 48px 图标轨留空间。 */
|
||
.sidebar-only .workspace-sidebar {
|
||
display: block;
|
||
max-width: calc(100vw - 48px);
|
||
}
|
||
/* 侧栏专用页禁用按钮采用 not-allowed,覆盖全局默认 wait 光标。 */
|
||
.sidebar-only button:disabled {
|
||
opacity: 0.45;
|
||
cursor: not-allowed;
|
||
}
|