1+ < style >
2+ .quality-card {
3+ position : relative;
4+ padding : 24px 24px 20px ;
5+ border-radius : 24px ;
6+ background : linear-gradient (90deg , rgba (255 , 240 , 230 , 0.95 ) 0% , rgba (255 , 255 , 255 , 0.98 ) 100% ) !important ;
7+ border : 1px solid rgba (112 , 189 , 236 , 0.22 );
8+ box-shadow : 0 18px 40px rgba (86 , 161 , 205 , 0.14 );
9+ overflow : hidden;
10+ }
11+
12+ .quality-card ::before {
13+ content : "锐评" ;
14+ position : absolute;
15+ top : 14px ;
16+ right : 18px ;
17+ font-size : 46px ;
18+ font-weight : 700 ;
19+ color : rgba (83 , 171 , 219 , 0.08 );
20+ letter-spacing : 4px ;
21+ }
22+
23+ .quality-head {
24+ display : flex;
25+ justify-content : space-between;
26+ align-items : flex-end;
27+ gap : 16px ;
28+ margin-bottom : 18px ;
29+ position : relative;
30+ z-index : 1 ;
31+ }
32+
33+ .quality-title {
34+ font-size : 28px ;
35+ font-weight : 700 ;
36+ color : # 2a6587 ;
37+ margin-bottom : 4px ;
38+ }
39+
40+ .quality-subtitle {
41+ display : inline-flex;
42+ align-items : center;
43+ padding : 7px 12px ;
44+ border-radius : 999px ;
45+ background : rgba (117 , 203 , 244 , 0.16 );
46+ color : # 5492b7 ;
47+ font-size : 14px ;
48+ }
49+
50+ .quality-bars {
51+ display : grid;
52+ gap : 12px ;
53+ margin-bottom : 16px ;
54+ position : relative;
55+ z-index : 1 ;
56+ }
57+
58+ .quality-bar-row {
59+ display : grid;
60+ grid-template-columns : 94px 1fr 54px ;
61+ align-items : center;
62+ gap : 12px ;
63+ }
64+
65+ .quality-bar-label {
66+ font-size : 14px ;
67+ color : # 52768d ;
68+ font-weight : 600 ;
69+ }
70+
71+ .quality-bar-track {
72+ height : 12px ;
73+ border-radius : 999px ;
74+ background : rgba (126 , 199 , 235 , 0.16 );
75+ overflow : hidden;
76+ }
77+
78+ .quality-bar-fill {
79+ height : 100% ;
80+ border-radius : 999px ;
81+ box-shadow : 0 6px 12px rgba (100 , 167 , 209 , 0.2 );
82+ }
83+
84+ .quality-bar-value {
85+ text-align : right;
86+ font-size : 13px ;
87+ color : # 5d88a3 ;
88+ font-weight : 700 ;
89+ }
90+
91+ .quality-comment-grid {
92+ display : grid;
93+ grid-template-columns : repeat (2 , minmax (0 , 1fr ));
94+ gap : 12px ;
95+ margin-bottom : 16px ;
96+ position : relative;
97+ z-index : 1 ;
98+ }
99+
100+ .quality-comment {
101+ padding : 14px 14px 12px ;
102+ border-radius : 16px ;
103+ background : rgba (255 , 255 , 255 , 0.74 );
104+ border : 1px dashed rgba (113 , 191 , 237 , 0.34 );
105+ }
106+
107+ .quality-comment strong {
108+ display : inline-block;
109+ margin-bottom : 6px ;
110+ color : # 3f84ad ;
111+ }
112+
113+ .quality-summary {
114+ position : relative;
115+ z-index : 1 ;
116+ padding : 14px 16px ;
117+ border-radius : 18px ;
118+ background : rgba (255 , 255 , 255 , 0.65 );
119+ color : # 4f7389 ;
120+ line-height : 1.8 ;
121+ border : 1px solid rgba (112 , 189 , 236 , 0.2 );
122+ }
123+ </ style >
124+
125+ < div class ="quality-card ">
126+ < div class ="quality-head ">
127+ < div >
128+ < div class ="quality-title "> {{ title }}</ div >
129+ < div class ="quality-subtitle "> {{ subtitle }}</ div >
130+ </ div >
131+ </ div >
132+
133+ < div class ="quality-bars ">
134+ {% for dim in dimensions %}
135+ < div class ="quality-bar-row ">
136+ < div class ="quality-bar-label "> {{ dim.name }}</ div >
137+ < div class ="quality-bar-track ">
138+ < div class ="quality-bar-fill " style ="width: {{ dim.percentage }}%; background: linear-gradient(90deg, {{ dim.color }}, color-mix(in srgb, {{ dim.color }} 65%, white)); "> </ div >
139+ </ div >
140+ < div class ="quality-bar-value "> {{ dim.percentage }}%</ div >
141+ </ div >
142+ {% endfor %}
143+ </ div >
144+
145+ < div class ="quality-comment-grid ">
146+ {% for dim in dimensions %}
147+ < div class ="quality-comment ">
148+ < strong > {{ dim.name }}</ strong >
149+ < div > {{ dim.comment }}</ div >
150+ </ div >
151+ {% endfor %}
152+ </ div >
153+
154+ < div class ="quality-summary "> {{ summary }}</ div >
155+ </ div >
0 commit comments