release(ios): 0.2.2 构建 9 修复消息发送遮挡并中性化石墨灰阶
- 消息中心发送入口从被标签栏盖住的底部操作条移到导航栏右侧,发信恢复可用 - 停用态主按钮保留主色淡底与同色描边,与次级按钮拉开层级 - 消息行删除改安静线性图标,去掉一屏红块 - 缺数据读数统一为短横,卡片延迟补空格单位 - 中性灰阶改为严格 R=G=B,浅色主题不再读出冷调;图标石墨底同步去蓝 - 详情页延迟量表改用与卡片同一算法,身份信息值改为右对齐 - 标签加号按钮与输入框同高同圆角
This commit is contained in:
@@ -133,9 +133,10 @@ func directionalRim(_ path: CGPath, _ rect: CGRect, _ width: CGFloat, _ stops: [
|
||||
fillLinear(
|
||||
rectPath(CGRect(x: 0, y: 0, width: side, height: side)),
|
||||
[
|
||||
(0.00, (32, 32, 33, 255)),
|
||||
(0.55, (19, 19, 20, 255)),
|
||||
(1.00, (10, 10, 11, 255)),
|
||||
// 石墨底严格等色。原先 B 比 R 高 1 级,缩到 60pt 后边缘像素仍会落在蓝色波段。
|
||||
(0.00, (32, 32, 32, 255)),
|
||||
(0.55, (19, 19, 19, 255)),
|
||||
(1.00, (10, 10, 10, 255)),
|
||||
] as [Stop],
|
||||
CGPoint(x: side * 0.06, y: 0),
|
||||
CGPoint(x: side * 0.94, y: side)
|
||||
@@ -169,9 +170,10 @@ ctx.restoreGState()
|
||||
fillLinear(
|
||||
plate,
|
||||
[
|
||||
(0.00, (250, 221, 152, 255)),
|
||||
(0.46, (238, 191, 100, 255)),
|
||||
(1.00, (199, 141, 47, 255)),
|
||||
// 金色往香槟靠,收掉底部的芥末/棕调:小尺寸下这段最容易被读成"脏黄"。
|
||||
(0.00, (252, 229, 170, 255)),
|
||||
(0.46, (240, 199, 111, 255)),
|
||||
(1.00, (211, 155, 61, 255)),
|
||||
] as [Stop],
|
||||
CGPoint(x: plateRect.minX, y: plateRect.minY),
|
||||
CGPoint(x: plateRect.maxX, y: plateRect.maxY)
|
||||
@@ -191,6 +193,8 @@ let slotWidth = envDouble("ICON_SLOT_W", 92)
|
||||
let slotGap = envDouble("ICON_SLOT_GAP", 54)
|
||||
let slotBottom = envDouble("ICON_SLOT_BOTTOM", 640)
|
||||
let slotHeights: [CGFloat] = [136, 232, 328]
|
||||
// 说明:以上默认值等价于 plate 相对比例(宽 .155 / 间距 .091 / 底边内缩 .265),
|
||||
// 改 plate 尺寸时按同一比例缩放才不会让槽和卡片脱节。
|
||||
let slotsWidth = CGFloat(slotHeights.count) * slotWidth + CGFloat(slotHeights.count - 1) * slotGap
|
||||
let slotsStartX = (side - slotsWidth) / 2
|
||||
|
||||
@@ -207,8 +211,8 @@ for (index, height) in slotHeights.enumerated() {
|
||||
fillLinear(
|
||||
path,
|
||||
[
|
||||
(0.00, (16, 16, 17, 255)),
|
||||
(1.00, (32, 32, 33, 255)),
|
||||
(0.00, (16, 16, 16, 255)),
|
||||
(1.00, (32, 32, 32, 255)),
|
||||
] as [Stop],
|
||||
CGPoint(x: rect.minX, y: rect.minY),
|
||||
CGPoint(x: rect.minX, y: rect.maxY)
|
||||
@@ -217,9 +221,9 @@ for (index, height) in slotHeights.enumerated() {
|
||||
directionalRim(
|
||||
path, rect, radius * 0.30,
|
||||
[
|
||||
(0.00, (112, 74, 16, 100)),
|
||||
(0.52, (112, 74, 16, 18)),
|
||||
(1.00, (255, 236, 190, 60)),
|
||||
(0.00, (120, 82, 24, 96)),
|
||||
(0.52, (120, 82, 24, 16)),
|
||||
(1.00, (255, 240, 202, 64)),
|
||||
] as [Stop]
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user