🎨 使用说明:本文档为波普艺术风格的UI设计规范示例文档。
🌟 目的:定义基于1950-1960年代Pop Art流行艺术运动的设计美学,运用明亮色彩、波点图案和商业艺术元素,营造充满活力且具有大众文化特色的视觉体验。
大众文化 · 明亮色彩 · 商业美学
深度重现1950-1960年代波普艺术运动的文化精髓,通过鲜艳的原色系统、经典的波点和条纹图案,以及富有商业气息的视觉元素,创造如同Andy Warhol和Roy Lichtenstein作品般的流行文化体验。设计强调大众化与娱乐性,每个元素都充满了那个时代的乐观精神和商业活力,如同一场流行文化的视觉盛宴。
🎪 波普艺术风格 - 流行文化的数字狂欢
本设计风格专为追求流行文化体验和娱乐性的应用场景设计,适合年轻化、娱乐化的用户群体:
明亮纯粹的流行色彩
#FF0000
(Pop Red - 纯粹的鲜红色)#0000FF
(Pop Blue - 纯粹的蓝色)#FFFF00
(Pop Yellow - 明亮的黄色)#00FF00
(Pop Green - 鲜艳的绿色)#F40009
(Coca Cola Red - 经典广告红色)#87CEEB
(Sky Blue - 60年代天空蓝)#FFF700
(Lemon Yellow - 柠檬般的明黄)#98FB98
(Pale Green - 清新的薄荷绿)#FF69B4
(Comic Pink - 漫画书的粉色)#9370DB
(Comic Purple - 漫画风格紫色)#FF8C00
(Comic Orange - 活力橙色)#00CED1
(Comic Cyan - 明亮青色)#FFFFFF
(Pure White - 干净的纯白色)#000000
(Pure Black - 强烈对比的黑色)#C0C0C0
(Print Gray - 印刷网点灰色)#FFFAF0
(Floral White - 温暖的米白色)linear-gradient(45deg, #FF0000, #FFFF00, #00FF00, #0000FF, #FF69B4)
linear-gradient(135deg, #FF8C00 0%, #FF0000 50%, #9370DB 100%)
linear-gradient(90deg, #FF69B4, #87CEEB, #98FB98)
radial-gradient(circle, #FFFF00, #FF0000, #0000FF)
商业化的流行字体
.popart-typography {
font-family: 'Cooper Black', 'Bebas Neue', 'Impact', 'Arial Black', sans-serif;
font-weight: 900;
line-height: 1.2;
letter-spacing: 0.02em;
}
.title-popart {
font-size: 64px;
font-weight: 900;
line-height: 1.0;
color: #FF0000;
margin-bottom: 24px;
letter-spacing: -0.02em;
text-transform: uppercase;
text-shadow:
4px 4px 0px #FFFF00,
8px 8px 0px #0000FF,
12px 12px 0px #000000;
position: relative;
}
.title-popart::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
color: #FFFFFF;
-webkit-text-stroke: 3px #000000;
text-stroke: 3px #000000;
z-index: -1;
}
.subtitle-popart {
font-size: 36px;
font-weight: 800;
line-height: 1.1;
color: #0000FF;
margin-bottom: 20px;
letter-spacing: 0.05em;
text-transform: uppercase;
background: repeating-linear-gradient(
45deg,
#FFFF00 0px,
#FFFF00 4px,
#FF0000 4px,
#FF0000 8px
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.heading-popart {
font-size: 24px;
font-weight: 700;
line-height: 1.2;
color: #00FF00;
margin-bottom: 16px;
letter-spacing: 0.08em;
text-transform: uppercase;
text-shadow: 2px 2px 0px #000000;
}
.body-popart {
font-size: 16px;
font-weight: 600;
line-height: 1.4;
color: #000000;
letter-spacing: 0.01em;
font-family: 'Arial', sans-serif;
}
.accent-popart {
font-size: 20px;
font-weight: 900;
color: #FF69B4;
text-transform: uppercase;
letter-spacing: 0.1em;
text-shadow: 1px 1px 0px #000000;
}
.comic-text {
font-size: 32px;
font-weight: 900;
color: #FF0000;
text-transform: uppercase;
letter-spacing: 0.1em;
font-family: 'Comic Sans MS', cursive;
text-shadow:
2px 2px 0px #000000,
4px 4px 0px #FFFF00;
position: relative;
}
.comic-bubble {
background: #FFFFFF;
color: #000000;
border: 4px solid #000000;
border-radius: 20px;
padding: 16px 24px;
font-size: 18px;
font-weight: 700;
position: relative;
display: inline-block;
margin: 16px;
font-family: 'Cooper Black', serif;
}
.comic-bubble::after {
content: '';
position: absolute;
bottom: -12px;
left: 30px;
width: 0;
height: 0;
border-left: 12px solid transparent;
border-right: 12px solid transparent;
border-top: 12px solid #FFFFFF;
}
.comic-bubble::before {
content: '';
position: absolute;
bottom: -16px;
left: 28px;
width: 0;
height: 0;
border-left: 14px solid transparent;
border-right: 14px solid transparent;
border-top: 14px solid #000000;
}
.halftone-text {
font-size: 48px;
font-weight: 900;
color: #FF0000;
text-transform: uppercase;
background-image: radial-gradient(circle, #000000 1px, transparent 1px);
background-size: 8px 8px;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
filter: contrast(2);
}
.stencil-text {
font-size: 54px;
font-weight: 900;
color: #0000FF;
text-transform: uppercase;
font-family: 'Bebas Neue', sans-serif;
letter-spacing: 0.15em;
position: relative;
}
.stencil-text::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
color: #FFFF00;
clip-path: polygon(0 20%, 100% 20%, 100% 40%, 0 40%, 0 60%, 100% 60%, 100% 80%, 0 80%);
}
.vintage-ad {
font-size: 28px;
font-weight: 700;
color: #FFFFFF;
background: linear-gradient(45deg, #FF0000, #FF8C00);
padding: 12px 24px;
border: 3px solid #000000;
text-transform: uppercase;
letter-spacing: 0.1em;
text-align: center;
box-shadow: 4px 4px 0px #000000;
font-family: 'Impact', sans-serif;
}
波点与条纹的文字应用
.polka-dot-text {
font-size: 42px;
font-weight: 900;
color: transparent;
background:
radial-gradient(circle, #FF0000 30%, transparent 30%),
#FFFF00;
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
-webkit-background-clip: text;
background-clip: text;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.stripe-text {
font-size: 36px;
font-weight: 900;
color: transparent;
background: repeating-linear-gradient(
45deg,
#0000FF 0px,
#0000FF 8px,
#FFFFFF 8px,
#FFFFFF 16px
);
-webkit-background-clip: text;
background-clip: text;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.pop-shadow {
font-size: 40px;
font-weight: 900;
color: #FFFF00;
text-transform: uppercase;
text-shadow:
1px 1px 0px #000000,
2px 2px 0px #FF0000,
3px 3px 0px #000000,
4px 4px 0px #0000FF,
5px 5px 0px #000000,
6px 6px 0px #00FF00;
letter-spacing: 0.05em;
}
流行文化的界面元素
.btn-popart-primary {
background: linear-gradient(45deg, #FF0000, #FF8C00);
color: #FFFFFF;
border: 4px solid #000000;
border-radius: 0;
padding: 16px 32px;
font-family: 'Cooper Black', serif;
font-size: 16px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.1em;
cursor: pointer;
transition: all 0.3s ease;
box-shadow:
4px 4px 0px #000000,
8px 8px 0px #FFFF00;
position: relative;
overflow: hidden;
}
.btn-popart-primary::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.3) 0px,
rgba(255, 255, 255, 0.3) 4px,
transparent 4px,
transparent 8px
);
transition: left 0.5s ease;
}
.btn-popart-primary:hover {
transform: translate(-2px, -2px);
box-shadow:
6px 6px 0px #000000,
12px 12px 0px #FFFF00;
}
.btn-popart-primary:hover::before {
left: 100%;
}
.btn-popart-comic {
background: #FFFF00;
color: #000000;
border: 4px solid #000000;
border-radius: 20px;
padding: 14px 28px;
font-family: 'Comic Sans MS', cursive;
font-size: 16px;
font-weight: 700;
text-transform: uppercase;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
box-shadow: 3px 3px 0px #FF0000;
}
.btn-popart-comic::after {
content: '!';
position: absolute;
top: -8px;
right: -8px;
width: 20px;
height: 20px;
background: #FF0000;
color: #FFFFFF;
border: 2px solid #000000;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: 900;
}
.btn-popart-comic:hover {
background: #00FF00;
transform: scale(1.05);
box-shadow: 5px 5px 0px #FF0000;
}
.btn-dots {
background:
radial-gradient(circle, #FF0000 30%, transparent 30%),
#FFFFFF;
background-size: 12px 12px;
background-position: 0 0, 6px 6px;
color: #000000;
border: 3px solid #000000;
border-radius: 0;
padding: 18px 30px;
font-family: 'Bebas Neue', sans-serif;
font-size: 16px;
font-weight: 400;
text-transform: uppercase;
letter-spacing: 0.15em;
cursor: pointer;
transition: all 0.3s ease;
}
.btn-dots:hover {
background:
radial-gradient(circle, #0000FF 30%, transparent 30%),
#FFFF00;
background-size: 12px 12px;
background-position: 0 0, 6px 6px;
transform: rotate(2deg);
}
.card-popart {
background: #FFFFFF;
border: 4px solid #000000;
border-radius: 0;
padding: 24px;
margin-bottom: 24px;
box-shadow: 8px 8px 0px #FF0000;
position: relative;
overflow: hidden;
transition: all 0.3s ease;
}
.card-popart::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 8px;
background: repeating-linear-gradient(
90deg,
#FF0000 0px,
#FF0000 20px,
#FFFF00 20px,
#FFFF00 40px,
#0000FF 40px,
#0000FF 60px,
#00FF00 60px,
#00FF00 80px
);
}
.card-popart:hover {
transform: translate(-4px, -4px);
box-shadow: 12px 12px 0px #FF0000;
}
.card-popart-dots {
background:
radial-gradient(circle, #FF69B4 25%, transparent 25%),
#FFFFFF;
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
border: 4px solid #000000;
padding: 32px;
position: relative;
}
.card-popart-dots::after {
content: '';
position: absolute;
bottom: 16px;
right: 16px;
width: 40px;
height: 40px;
background: #FFFF00;
border: 3px solid #000000;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.card-popart-comic {
background: linear-gradient(135deg, #87CEEB 0%, #98FB98 100%);
border: 4px dashed #000000;
border-radius: 15px;
padding: 28px;
position: relative;
}
.card-popart-comic::before {
content: 'WOW!';
position: absolute;
top: -12px;
right: 20px;
background: #FF0000;
color: #FFFFFF;
padding: 4px 12px;
border: 2px solid #000000;
border-radius: 20px;
font-size: 12px;
font-weight: 900;
font-family: 'Comic Sans MS', cursive;
}
.card-header-popart {
border-bottom: 4px solid #000000;
padding-bottom: 16px;
margin-bottom: 20px;
background: repeating-linear-gradient(
90deg,
transparent 0px,
transparent 18px,
#FFFF00 18px,
#FFFF00 20px
);
}
.card-title-popart {
font-size: 24px;
font-weight: 900;
color: #FF0000;
margin: 0;
text-transform: uppercase;
letter-spacing: 0.05em;
font-family: 'Cooper Black', serif;
text-shadow: 2px 2px 0px #000000;
}
.form-popart {
max-width: 500px;
margin: 0 auto;
background: #FFFFFF;
padding: 32px;
border: 6px solid #000000;
position: relative;
box-shadow: 8px 8px 0px #FFFF00;
}
.form-popart::before {
content: '';
position: absolute;
top: 12px;
left: 12px;
right: 12px;
bottom: 12px;
border: 2px dashed #FF0000;
pointer-events: none;
}
.input-popart {
width: 100%;
background: #FFFFFF;
border: 3px solid #000000;
border-radius: 0;
padding: 14px 18px;
font-family: 'Arial', sans-serif;
font-size: 16px;
font-weight: 600;
color: #000000;
outline: none;
transition: all 0.3s ease;
}
.input-popart:focus {
border-color: #FF0000;
background: #FFFF00;
box-shadow: 4px 4px 0px #0000FF;
transform: translate(-2px, -2px);
}
.input-popart::placeholder {
color: #808080;
font-style: italic;
font-weight: 400;
}
.label-popart {
display: block;
font-size: 14px;
font-weight: 900;
color: #0000FF;
margin-bottom: 8px;
text-transform: uppercase;
letter-spacing: 0.08em;
font-family: 'Impact', sans-serif;
}
.select-popart {
width: 100%;
background: #FFFFFF;
border: 3px solid #000000;
border-radius: 0;
padding: 14px 18px;
font-family: 'Arial', sans-serif;
font-size: 16px;
font-weight: 600;
color: #000000;
cursor: pointer;
outline: none;
appearance: none;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FF0000' viewBox='0 0 16 16'%3e%3cpath d='M8 13.1l4.7-4.7-1.4-1.4L8 10.3 4.7 7l-1.4 1.4z'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 16px center;
background-size: 16px;
}
.checkbox-popart {
width: 20px;
height: 20px;
border: 3px solid #000000;
border-radius: 0;
background: #FFFFFF;
cursor: pointer;
position: relative;
transition: all 0.3s ease;
}
.checkbox-popart:checked {
background: #FF0000;
border-color: #000000;
}
.checkbox-popart:checked::after {
content: '✓';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #FFFFFF;
font-size: 14px;
font-weight: 900;
}
.radio-popart {
width: 20px;
height: 20px;
border: 3px solid #000000;
border-radius: 50%;
background: #FFFFFF;
cursor: pointer;
position: relative;
transition: all 0.3s ease;
}
.radio-popart:checked {
background: #0000FF;
}
.radio-popart:checked::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 8px;
height: 8px;
background: #FFFFFF;
border-radius: 50%;
}
经典的流行文化视觉元素
.polka-dots {
background:
radial-gradient(circle, #FF0000 30%, transparent 30%),
#FFFFFF;
background-size: 30px 30px;
background-position: 0 0, 15px 15px;
width: 200px;
height: 200px;
border: 4px solid #000000;
}
.polka-dots-small {
background:
radial-gradient(circle, #0000FF 25%, transparent 25%),
#FFFF00;
background-size: 15px 15px;
background-position: 0 0, 7.5px 7.5px;
width: 150px;
height: 150px;
border: 3px solid #000000;
}
.polka-dots-large {
background:
radial-gradient(circle, #FF69B4 35%, transparent 35%),
#87CEEB;
background-size: 50px 50px;
background-position: 0 0, 25px 25px;
width: 300px;
height: 200px;
border: 5px solid #000000;
}
.gradient-dots {
background:
radial-gradient(circle, #FF0000 20%, #FFFF00 20% 40%, transparent 40%),
#FFFFFF;
background-size: 40px 40px;
background-position: 0 0, 20px 20px;
width: 250px;
height: 250px;
border: 4px solid #000000;
}
.pop-stripes-horizontal {
background: repeating-linear-gradient(
0deg,
#FF0000 0px,
#FF0000 20px,
#FFFFFF 20px,
#FFFFFF 40px
);
width: 200px;
height: 150px;
border: 4px solid #000000;
}
.pop-stripes-vertical {
background: repeating-linear-gradient(
90deg,
#0000FF 0px,
#0000FF 15px,
#FFFF00 15px,
#FFFF00 30px
);
width: 150px;
height: 200px;
border: 4px solid #000000;
}
.pop-stripes-diagonal {
background: repeating-linear-gradient(
45deg,
#00FF00 0px,
#00FF00 10px,
#FF69B4 10px,
#FF69B4 20px
);
width: 200px;
height: 200px;
border: 4px solid #000000;
}
.chevron-pattern {
background: repeating-linear-gradient(
45deg,
#FF8C00 0px,
#FF8C00 20px,
#9370DB 20px,
#9370DB 40px,
#87CEEB 40px,
#87CEEB 60px,
#98FB98 60px,
#98FB98 80px
);
width: 250px;
height: 180px;
border: 5px solid #000000;
}
.halftone-dots {
background-image:
radial-gradient(circle, #000000 1px, transparent 1px);
background-size: 8px 8px;
background-color: #FF0000;
width: 200px;
height: 200px;
border: 4px solid #000000;
filter: contrast(1.5);
}
.halftone-gradient {
background:
radial-gradient(circle, #000000 1px, transparent 1px),
linear-gradient(45deg, #FF0000, #FFFF00);
background-size:
6px 6px,
100% 100%;
width: 250px;
height: 150px;
border: 4px solid #000000;
}
.comic-screentone {
background:
radial-gradient(circle at 25% 25%, #000000 2px, transparent 2px),
radial-gradient(circle at 75% 75%, #000000 1px, transparent 1px),
#FFFFFF;
background-size:
12px 12px,
8px 8px,
100% 100%;
width: 200px;
height: 200px;
border: 4px solid #000000;
}
.ben-day-dots {
background:
radial-gradient(circle, rgba(255, 0, 0, 0.8) 30%, transparent 30%),
radial-gradient(circle, rgba(0, 0, 255, 0.8) 30%, transparent 30%),
#FFFFFF;
background-size:
20px 20px,
20px 20px;
background-position:
0 0,
10px 10px;
width: 300px;
height: 200px;
border: 4px solid #000000;
}
.pop-collage {
position: relative;
width: 300px;
height: 250px;
background: #FFFFFF;
border: 6px solid #000000;
overflow: hidden;
}
.collage-dots {
position: absolute;
top: 20px;
left: 20px;
width: 80px;
height: 80px;
background:
radial-gradient(circle, #FF0000 40%, transparent 40%),
#FFFF00;
background-size: 16px 16px;
background-position: 0 0, 8px 8px;
}
.collage-stripes {
position: absolute;
top: 40px;
right: 15px;
width: 100px;
height: 60px;
background: repeating-linear-gradient(
45deg,
#0000FF 0px,
#0000FF 8px,
#FFFFFF 8px,
#FFFFFF 16px
);
}
.collage-solid {
position: absolute;
bottom: 30px;
left: 40px;
width: 120px;
height: 40px;
background: #00FF00;
border: 3px solid #000000;
}
.collage-comic {
position: absolute;
bottom: 50px;
right: 25px;
width: 60px;
height: 60px;
background:
radial-gradient(circle, #000000 1px, transparent 1px),
#FF69B4;
background-size: 6px 6px;
}
.warhol-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 4px;
width: 300px;
height: 300px;
border: 6px solid #000000;
}
.warhol-cell {
background-size: cover;
background-position: center;
position: relative;
}
.warhol-cell:nth-child(1) { filter: sepia(1) hue-rotate(300deg) saturate(3); }
.warhol-cell:nth-child(2) { filter: sepia(1) hue-rotate(180deg) saturate(3); }
.warhol-cell:nth-child(3) { filter: sepia(1) hue-rotate(60deg) saturate(3); }
.warhol-cell:nth-child(4) { filter: sepia(1) hue-rotate(240deg) saturate(3); }
商业化的空间设计
.page-popart {
min-height: 100vh;
background:
repeating-linear-gradient(
45deg,
#FFFFFF 0px,
#FFFFFF 50px,
#FFFF00 50px,
#FFFF00 52px
),
repeating-linear-gradient(
-45deg,
transparent 0px,
transparent 50px,
#FF0000 50px,
#FF0000 52px
);
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: 100px 1fr 80px;
grid-template-areas:
"header header header"
"sidebar main aside"
"footer footer footer";
gap: 20px;
padding: 20px;
position: relative;
}
.header-popart {
grid-area: header;
background: linear-gradient(90deg, #FF0000, #FFFF00, #0000FF);
border: 6px solid #000000;
border-radius: 0;
display: flex;
align-items: center;
padding: 0 30px;
box-shadow: 8px 8px 0px #000000;
position: relative;
}
.header-popart::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: repeating-linear-gradient(
90deg,
transparent 0px,
transparent 48px,
rgba(255, 255, 255, 0.3) 48px,
rgba(255, 255, 255, 0.3) 50px
);
}
.sidebar-popart {
grid-area: sidebar;
background:
radial-gradient(circle, #FF69B4 30%, transparent 30%),
#FFFFFF;
background-size: 25px 25px;
background-position: 0 0, 12.5px 12.5px;
border: 5px solid #000000;
padding: 25px;
box-shadow: 6px 6px 0px #00FF00;
}
.main-popart {
grid-area: main;
background: #FFFFFF;
border: 6px solid #000000;
padding: 30px;
position: relative;
box-shadow: 10px 10px 0px #FF0000;
}
.main-popart::before {
content: '';
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border: 3px dashed #0000FF;
pointer-events: none;
}
.aside-popart {
grid-area: aside;
background: repeating-linear-gradient(
0deg,
#87CEEB 0px,
#87CEEB 20px,
#98FB98 20px,
#98FB98 40px
);
border: 4px solid #000000;
padding: 20px;
box-shadow: 5px 5px 0px #FF8C00;
}
.footer-popart {
grid-area: footer;
background: linear-gradient(90deg, #9370DB, #FF8C00, #00CED1);
border: 5px solid #000000;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 6px 6px 0px #000000;
position: relative;
}
.footer-popart::after {
content: '';
position: absolute;
top: 10px;
left: 10px;
right: 10px;
bottom: 10px;
border: 2px dotted #FFFFFF;
}
.ad-layout {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(3, 200px);
gap: 15px;
margin: 30px 0;
background: #FFFFFF;
padding: 20px;
border: 8px solid #000000;
}
.ad-block {
border: 4px solid #000000;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Cooper Black', serif;
font-weight: 900;
font-size: 20px;
text-transform: uppercase;
color: #FFFFFF;
position: relative;
overflow: hidden;
}
.ad-block-1 {
grid-column: 1 / 3;
grid-row: 1 / 2;
background: #FF0000;
}
.ad-block-2 {
grid-column: 3 / 5;
grid-row: 1 / 3;
background:
radial-gradient(circle, #FFFF00 40%, transparent 40%),
#0000FF;
background-size: 30px 30px;
background-position: 0 0, 15px 15px;
color: #000000;
}
.ad-block-3 {
grid-column: 1 / 2;
grid-row: 2 / 4;
background: repeating-linear-gradient(
45deg,
#00FF00 0px,
#00FF00 15px,
#FFFFFF 15px,
#FFFFFF 30px
);
color: #000000;
}
.ad-block-4 {
grid-column: 2 / 4;
grid-row: 2 / 3;
background: linear-gradient(135deg, #FF69B4, #87CEEB);
}
.ad-block-5 {
grid-column: 2 / 3;
grid-row: 3 / 4;
background: #FFFF00;
color: #000000;
border-style: dashed;
}
.ad-block-6 {
grid-column: 3 / 5;
grid-row: 3 / 4;
background:
radial-gradient(circle, #000000 2px, transparent 2px),
#FF8C00;
background-size: 12px 12px;
color: #FFFFFF;
}
.comic-panel-layout {
display: grid;
grid-template-columns: 2fr 1fr 2fr;
grid-template-rows: 1fr 1fr;
gap: 10px;
width: 600px;
height: 400px;
background: #FFFFFF;
padding: 15px;
border: 6px solid #000000;
margin: 20px auto;
}
.comic-panel {
border: 4px solid #000000;
background: #FFFFFF;
position: relative;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Comic Sans MS', cursive;
font-weight: 700;
font-size: 16px;
color: #000000;
}
.comic-panel:nth-child(1) {
background: linear-gradient(45deg, #FFFF00, #FF8C00);
}
.comic-panel:nth-child(2) {
grid-row: 1 / 3;
background:
radial-gradient(circle, #FF0000 35%, transparent 35%),
#FFFFFF;
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
}
.comic-panel:nth-child(3) {
background: repeating-linear-gradient(
90deg,
#0000FF 0px,
#0000FF 10px,
#FFFFFF 10px,
#FFFFFF 20px
);
}
商业化的导航美学
.nav-popart {
display: flex;
align-items: center;
gap: 0;
padding: 0 30px;
height: 100%;
position: relative;
}
.nav-item-popart {
color: #FFFFFF;
text-decoration: none;
font-family: 'Cooper Black', serif;
font-size: 16px;
font-weight: 900;
padding: 16px 20px;
margin: 0 4px;
position: relative;
transition: all 0.3s ease;
text-transform: uppercase;
letter-spacing: 0.05em;
background: #000000;
border: 3px solid #FFFFFF;
text-shadow: none;
}
.nav-item-popart::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(45deg, #FF0000, #FFFF00);
opacity: 0;
transition: opacity 0.3s ease;
z-index: -1;
}
.nav-item-popart::after {
content: '★';
position: absolute;
top: -6px;
right: -6px;
width: 16px;
height: 16px;
background: #FF0000;
color: #FFFFFF;
border: 2px solid #FFFFFF;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
opacity: 0;
transition: opacity 0.3s ease;
}
.nav-item-popart:hover {
color: #000000;
border-color: #000000;
transform: translate(-2px, -2px);
box-shadow: 4px 4px 0px #0000FF;
}
.nav-item-popart:hover::before {
opacity: 1;
}
.nav-item-popart:hover::after {
opacity: 1;
}
.nav-item-popart.active {
color: #000000;
background: #FFFF00;
border-color: #000000;
box-shadow: 3px 3px 0px #FF0000;
}
.nav-item-popart.active::after {
opacity: 1;
background: #00FF00;
}
.logo-popart {
font-size: 32px;
font-weight: 900;
color: #FFFFFF;
text-decoration: none;
margin-right: auto;
font-family: 'Impact', sans-serif;
letter-spacing: 0.1em;
text-transform: uppercase;
position: relative;
text-shadow:
2px 2px 0px #FF0000,
4px 4px 0px #FFFF00,
6px 6px 0px #0000FF;
animation: popLogo 2s ease-in-out infinite alternate;
}
@keyframes popLogo {
0% {
transform: scale(1);
filter: hue-rotate(0deg);
}
100% {
transform: scale(1.05);
filter: hue-rotate(20deg);
}
}
.breadcrumb-popart {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 30px;
font-size: 14px;
color: #000000;
font-family: 'Arial', sans-serif;
font-weight: 600;
text-transform: uppercase;
}
.breadcrumb-item-popart {
text-decoration: none;
color: inherit;
transition: color 0.3s ease;
padding: 4px 8px;
border: 2px solid transparent;
}
.breadcrumb-item-popart:hover {
color: #FF0000;
background: #FFFF00;
border-color: #000000;
}
.breadcrumb-separator-popart {
color: #FF0000;
font-weight: 900;
font-size: 16px;
}
.mobile-nav-popart {
position: fixed;
top: 0;
left: -100%;
width: 100%;
height: 100vh;
background:
repeating-linear-gradient(
45deg,
#FF0000 0px,
#FF0000 40px,
#FFFF00 40px,
#FFFF00 80px,
#0000FF 80px,
#0000FF 120px,
#00FF00 120px,
#00FF00 160px
);
transition: left 0.4s ease;
z-index: 1000;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 25px;
}
.mobile-nav-popart.active {
left: 0;
}
.mobile-nav-item {
color: #FFFFFF;
text-decoration: none;
font-size: 24px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.3s ease;
position: relative;
background: #000000;
padding: 12px 20px;
border: 4px solid #FFFFFF;
font-family: 'Cooper Black', serif;
}
.mobile-nav-item:hover {
color: #000000;
background: #FFFFFF;
border-color: #000000;
transform: scale(1.1);
}
商业化的动画美学
.popart-transition {
transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.pop-bounce {
transition: transform 0.2s ease;
}
.pop-bounce:hover {
transform: scale(1.1) rotate(5deg);
}
.comic-entrance {
animation: comicEntrance 1s ease-out;
}
@keyframes comicEntrance {
0% {
opacity: 0;
transform: scale(0.3) rotate(-10deg);
filter: blur(5px);
}
50% {
opacity: 1;
transform: scale(1.2) rotate(5deg);
filter: blur(0px);
}
100% {
opacity: 1;
transform: scale(1) rotate(0deg);
filter: blur(0px);
}
}
.pop-flash {
animation: popFlash 0.6s ease-in-out;
}
@keyframes popFlash {
0%, 100% {
background-color: initial;
transform: scale(1);
}
50% {
background-color: #FFFF00;
transform: scale(1.05);
}
}
.halftone-animation {
animation: halftoneShift 3s linear infinite;
}
@keyframes halftoneShift {
0% {
background-size: 8px 8px;
filter: contrast(1);
}
50% {
background-size: 12px 12px;
filter: contrast(2);
}
100% {
background-size: 8px 8px;
filter: contrast(1);
}
}
.color-shift {
animation: colorShift 4s ease-in-out infinite;
}
@keyframes colorShift {
0% { filter: hue-rotate(0deg) saturate(1); }
25% { filter: hue-rotate(90deg) saturate(1.5); }
50% { filter: hue-rotate(180deg) saturate(1); }
75% { filter: hue-rotate(270deg) saturate(1.5); }
100% { filter: hue-rotate(360deg) saturate(1); }
}
.warhol-effect {
animation: warholEffect 2s ease-in-out infinite alternate;
}
@keyframes warholEffect {
0% {
filter: sepia(1) hue-rotate(0deg) saturate(3);
transform: scale(1);
}
25% {
filter: sepia(1) hue-rotate(90deg) saturate(3);
transform: scale(1.02);
}
50% {
filter: sepia(1) hue-rotate(180deg) saturate(3);
transform: scale(1);
}
75% {
filter: sepia(1) hue-rotate(270deg) saturate(3);
transform: scale(1.02);
}
100% {
filter: sepia(1) hue-rotate(360deg) saturate(3);
transform: scale(1);
}
}
.pop-shake {
animation: popShake 0.5s ease-in-out;
}
@keyframes popShake {
0%, 100% { transform: translate(0, 0); }
10% { transform: translate(-2px, 0); }
20% { transform: translate(2px, 0); }
30% { transform: translate(0, -2px); }
40% { transform: translate(0, 2px); }
50% { transform: translate(-2px, -2px); }
60% { transform: translate(2px, 2px); }
70% { transform: translate(-2px, 2px); }
80% { transform: translate(2px, -2px); }
90% { transform: translate(-1px, 0); }
}
.dot-pulse {
animation: dotPulse 2s ease-in-out infinite;
}
@keyframes dotPulse {
0%, 100% {
background-size: 20px 20px;
opacity: 1;
}
50% {
background-size: 30px 30px;
opacity: 0.8;
}
}
保持商业美学的响应式原则
/* 移动端优化 */
@media (max-width: 767px) {
.page-popart {
grid-template-columns: 1fr;
grid-template-areas:
"header"
"main"
"sidebar"
"aside"
"footer";
grid-template-rows: 80px auto auto auto 60px;
gap: 15px;
padding: 15px;
background: #FFFFFF;
}
.title-popart {
font-size: 36px;
text-shadow:
2px 2px 0px #FFFF00,
4px 4px 0px #0000FF;
}
.subtitle-popart {
font-size: 24px;
}
.ad-layout {
grid-template-columns: 1fr;
grid-template-rows: repeat(6, 150px);
gap: 10px;
}
.ad-layout > * {
grid-column: 1;
grid-row: auto;
}
.comic-panel-layout {
grid-template-columns: 1fr;
grid-template-rows: repeat(3, 120px);
width: 100%;
height: auto;
}
.comic-panel:nth-child(2) {
grid-row: auto;
}
.nav-popart {
display: none;
}
.header-popart,
.sidebar-popart,
.main-popart,
.aside-popart,
.footer-popart {
box-shadow: 4px 4px 0px #000000;
}
}
/* 平板端适配 */
@media (min-width: 768px) and (max-width: 1024px) {
.page-popart {
grid-template-columns: 1fr 2fr;
grid-template-areas:
"header header"
"sidebar main"
"aside main"
"footer footer";
grid-template-rows: 80px 1fr auto 60px;
}
.ad-layout {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 180px);
}
.title-popart {
font-size: 48px;
}
.subtitle-popart {
font-size: 28px;
}
.comic-panel-layout {
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
width: 500px;
height: 350px;
}
.comic-panel:nth-child(2) {
grid-row: 1 / 3;
grid-column: 2;
}
}
/* 大屏优化 */
@media (min-width: 1200px) {
.page-popart {
grid-template-columns: 1fr 4fr 1fr;
padding: 30px;
gap: 25px;
}
.title-popart {
font-size: 80px;
text-shadow:
6px 6px 0px #FFFF00,
12px 12px 0px #0000FF,
18px 18px 0px #000000;
}
.subtitle-popart {
font-size: 42px;
}
.ad-layout {
grid-template-columns: repeat(5, 1fr);
grid-template-rows: repeat(3, 220px);
gap: 20px;
}
.main-popart {
padding: 40px;
}
.comic-panel-layout {
width: 800px;
height: 500px;
}
}
大众化的无障碍体验
.accessible-popart {
/* 确保足够的颜色对比度 */
color: #000000;
background: #FFFFFF;
}
.focus-popart:focus {
outline: 4px solid #FF0000;
outline-offset: 4px;
border-radius: 0;
box-shadow:
0 0 0 8px rgba(255, 0, 0, 0.3),
4px 4px 0px #FFFF00;
animation: focusFlash 1s ease-in-out infinite alternate;
}
@keyframes focusFlash {
0% {
box-shadow:
0 0 0 8px rgba(255, 0, 0, 0.3),
4px 4px 0px #FFFF00;
}
100% {
box-shadow:
0 0 0 12px rgba(255, 0, 0, 0.5),
6px 6px 0px #FFFF00;
}
}
.skip-link-popart {
position: absolute;
top: -60px;
left: 30px;
background: #FF0000;
color: #FFFFFF;
padding: 16px 24px;
text-decoration: none;
border: 4px solid #000000;
font-family: 'Cooper Black', serif;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: top 0.3s;
z-index: 1001;
box-shadow: 4px 4px 0px #FFFF00;
}
.skip-link-popart:focus {
top: 30px;
}
.sr-only-popart {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* 高对比度模式支持 */
@media (prefers-contrast: high) {
.card-popart {
border: 6px solid #000000;
background: #FFFFFF;
}
.btn-popart-primary {
border: 4px solid #000000;
background: #FFFF00;
color: #000000;
}
.nav-item-popart {
color: #FFFFFF;
background: #000000;
border: 3px solid #FFFFFF;
}
.title-popart {
color: #000000;
text-shadow: none;
}
.polka-dots {
background:
radial-gradient(circle, #000000 50%, transparent 50%),
#FFFFFF;
}
}
/* 减少动画偏好支持 */
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
.logo-popart {
animation: none;
filter: none;
}
.page-popart {
background: #FFFFFF;
}
.pop-bounce:hover {
transform: none;
}
}
波普艺术运动引用:
"In the future, everyone will be world-famous for 15 minutes."
— Andy Warhol,波普艺术之王
"I try to use a method that helps me strip away everything that doesn't relate to the essential meaning."
— Roy Lichtenstein,波普艺术大师
流行文化精神:
艺术就在身边,流行即是永恒
用最简单的方式表达最复杂的情感