第九轮(部分):修复日报徽章配色、彻底重做PIN定位方案、清理静态文件品牌残留
- 日报卡片"已提交/未提交"状态徽章补色:DailyReportCard用<article><header><em>结构,原选择器
要求.report-cards直接子<button>,日报卡片永远命中不了、只落到不分状态的兜底样式;月报因为
行本身就是<button>所以没受影响。详情页.report-author em同理补了区分色(原来恒为绿色,"未
提交"用绿色在语义上很怪)。
- 青少年模式/独立密码设置的PIN输入定位改用结构性方案,不再靠猜一个rem偏移量:给
.auth-pin-boxes/.auth-pin-input包一层.auth-pin-wrap,输入框inset:0精确覆盖方块的真实
渲染框,不管外层页面有没有标题、padding多少都自动对齐。上一轮的补丁(.youth-password-gate
.auth-pin-input{top:1.75rem})把重叠率从0%提到32.5%,本轮实测确认还是不够(方块下方
67.5%的面积点不中),根治后4个采样点(四角+中心)全部精确命中输入框。过程中额外发现并
修复了两个更隐蔽的层叠问题:全局input[type=text]的height:2.5rem特异度反超裸class、
textarea/input共享的margin:0.25rem重置——不清掉这两个会让inset:0看起来生效了、实际尺寸/
位置还是被悄悄改掉。
- .report-loading(举报原因页加载态)补基础样式,原来在base.css里零匹配,吃浏览器默认<p>样式。
- 清理静态文件里的Tinode品牌残留:index.html/index-dev.html的<meta>标签(application-name/
description/og:*/canonical,此前只改了<title>,meta标签一直没跟上)、manifest.json(name/
short_name/description改MeetingIM;prefer_related_applications+related_applications整个
删掉——这两个字段会让Android/Chrome"添加到主屏幕"时引导用户去装无关的第三方开源Tinode App,
不只是文案问题);删除.well-known/assetlinks.json(声明了无关第三方App对本域名的URL处理/
登录凭据代理权限,属于遗留模板残留,无真实对应关系,直接移除而非编造虚假内容)。
manifest.json里的图标文件(logo96.png/logo192.png/logo.svg)本身画的就是Tinode的蓝绿橙"t"标志,
是真实的视觉品牌泄漏,但重新设计一套图标涉及视觉识别决策,本次未动,留给用户决定。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f688578714
commit
d573b38d10
+43
-13
@@ -1099,6 +1099,13 @@
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* DailyReportCard renders <article><header><em>, not the <button> the two rules below (1196-1197)
|
||||
assume -- so submitted/draft there always fell through to this rule's one fixed color, unable to
|
||||
tell the two states apart (MonthlyReportList's own rows really are <button>s, so it never hit
|
||||
this gap). Same colors as the button-based rules, just re-declared at matching structure. */
|
||||
.report-cards article > header em.submitted { color: #28784f; background: #e5f5ec; }
|
||||
.report-cards article > header em.draft { color: #ad6c11; background: #fff2dd; }
|
||||
|
||||
.report-cards article p {
|
||||
display: -webkit-box;
|
||||
margin: 0.8rem 0;
|
||||
@@ -1288,10 +1295,14 @@
|
||||
}
|
||||
|
||||
.report-author em {
|
||||
color: #2c8257;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* Was one fixed color (green) regardless of report.status's actual value -- a "未提交" (not yet
|
||||
submitted) badge showing the same green as "已提交" reads backwards. */
|
||||
.report-author em.submitted { color: #28784f; }
|
||||
.report-author em.draft { color: #ad6c11; }
|
||||
|
||||
.report-detail h2,
|
||||
.report-detail h3,
|
||||
.report-detail p {
|
||||
@@ -6795,6 +6806,20 @@ div.toast.show {
|
||||
margin-top: 1.2rem;
|
||||
}
|
||||
|
||||
/* .auth-pin-input used to be sized/positioned with hardcoded top/width/height values guessed to
|
||||
match wherever .auth-pin-boxes happened to render on each page -- .auth-pin-content's <h1> and
|
||||
.youth-password-gate's shorter top padding push the boxes to two different heights, so one
|
||||
shared guessed `top` could only ever be right for one of them (confirmed live twice: the two
|
||||
pages' real box positions differ by ~9.25rem, and a value tuned for one left the other's boxes
|
||||
only ~32% overlapping the real input, still mostly unclickable). Wrapping both in their own
|
||||
tightly-fitting, positioned container instead -- inset:0 on the input then always matches
|
||||
.auth-pin-boxes' actual rendered box exactly, on any page, with no measured constant to keep
|
||||
in sync. */
|
||||
.auth-pin-wrap {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.auth-pin-boxes {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 4rem);
|
||||
@@ -6812,21 +6837,19 @@ div.toast.show {
|
||||
|
||||
.auth-pin-input {
|
||||
position: absolute;
|
||||
top: 11rem;
|
||||
width: 19rem;
|
||||
height: 5rem;
|
||||
inset: 0;
|
||||
margin: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* .auth-pin-input's shared top:11rem was measured against .auth-pin-content's layout (6rem
|
||||
top padding + an <h1> pushing .auth-pin-boxes further down) -- .youth-password-gate has no
|
||||
title and only 3rem of top padding, so .auth-pin-boxes sits ~9.25rem higher here and the
|
||||
invisible real input ended up entirely below the visible boxes (confirmed live: boxes at
|
||||
86.7-140px, input at 210-243px, a real click on the boxes hit nothing and never refocused
|
||||
the input). Re-anchored to this container's own shorter layout instead of reusing the other
|
||||
page's absolute value. */
|
||||
.youth-password-gate .auth-pin-input {
|
||||
top: 1.75rem;
|
||||
/* input[type="text"]'s global reset (2131 above) sets a fixed height:2.5rem at higher specificity
|
||||
(0,1,1) than a bare .auth-pin-input's (0,1,0) -- it was winning and pinning this input to 2.5rem
|
||||
tall regardless of the boxes' actual height, undoing the inset:0 fix above for the vertical axis
|
||||
(width happened to still come out right only because the reset's own width:100% agrees with this
|
||||
element's actual need). Selector bumped to definitively outrank it, not just happen to. */
|
||||
.auth-pin-wrap .auth-pin-input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.auth-pin-content .auth-primary {
|
||||
@@ -14061,6 +14084,13 @@ div.toast.show {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.report-loading {
|
||||
margin: 0;
|
||||
padding: 1rem;
|
||||
color: #6e7781;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
.report-reason-list {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user