Skip to content

Commit 9fc7ff6

Browse files
Thomas StrombergThomas Stromberg
authored andcommitted
Improve app home styling
1 parent 9f83bb5 commit 9fc7ff6

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

pkg/home/ui.go

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,25 @@ import (
99
)
1010

1111
// BuildBlocks creates Slack Block Kit UI for the home dashboard.
12-
// Design: Craigslist meets Apple - minimal, clean, functional.
12+
// Design matches dashboard at https://ready-to-review.dev - modern minimal with indigo accents.
1313
func BuildBlocks(dashboard *Dashboard, primaryOrg string) []slack.Block {
1414
var blocks []slack.Block
1515

16-
// Header
16+
// Header - matches dashboard's gradient header
1717
blocks = append(blocks,
1818
slack.NewHeaderBlock(
19-
slack.NewTextBlockObject("plain_text", "Ready to Review", false, false),
19+
slack.NewTextBlockObject("plain_text", "🚀 Ready to Review", false, false),
2020
),
2121
)
2222

2323
counts := dashboard.Counts()
2424

25-
// Incoming section
25+
// Incoming section - matches dashboard's card-based sections
2626
blocks = append(blocks,
2727
slack.NewDividerBlock(),
2828
slack.NewSectionBlock(
2929
slack.NewTextBlockObject("mrkdwn",
30-
fmt.Sprintf("*INCOMING* (%d blocked, %d total)",
30+
fmt.Sprintf("*🪿 Incoming PRs* • %d blocked%d total",
3131
counts.IncomingBlocked,
3232
counts.IncomingTotal),
3333
false,
@@ -52,12 +52,12 @@ func BuildBlocks(dashboard *Dashboard, primaryOrg string) []slack.Block {
5252
}
5353
}
5454

55-
// Outgoing section
55+
// Outgoing section - matches dashboard's card-based sections
5656
blocks = append(blocks,
5757
slack.NewDividerBlock(),
5858
slack.NewSectionBlock(
5959
slack.NewTextBlockObject("mrkdwn",
60-
fmt.Sprintf("*OUTGOING* (%d blocked, %d total)",
60+
fmt.Sprintf("*:popper: Outgoing PRs* • %d blocked%d total",
6161
counts.OutgoingBlocked,
6262
counts.OutgoingTotal),
6363
false,
@@ -82,13 +82,13 @@ func BuildBlocks(dashboard *Dashboard, primaryOrg string) []slack.Block {
8282
}
8383
}
8484

85-
// Footer with link to comprehensive web dashboard
85+
// Footer with link to comprehensive web dashboard - matches dashboard styling
8686
blocks = append(blocks,
8787
slack.NewDividerBlock(),
8888
slack.NewContextBlock(
8989
"",
9090
slack.NewTextBlockObject("mrkdwn",
91-
fmt.Sprintf("For a more comprehensive view, visit <%s|%s.ready-to-review.dev>",
91+
fmt.Sprintf("✨ Visit <%s|%s.ready-to-review.dev> for the full dashboard experience",
9292
fmt.Sprintf("https://%s.ready-to-review.dev", primaryOrg),
9393
primaryOrg,
9494
),
@@ -102,14 +102,16 @@ func BuildBlocks(dashboard *Dashboard, primaryOrg string) []slack.Block {
102102
}
103103

104104
// formatPRBlock formats a single PR as a Slack block.
105+
// Matches dashboard's card design with clean hierarchy.
105106
func formatPRBlock(pr *PR) slack.Block {
106-
// Determine emoji prefix based on blocking status
107-
emoji := "•"
107+
// Status emoji - matches dashboard's visual indicators
108+
// Using indigo/purple themed emojis to match dashboard color scheme
109+
emoji := "🔵" // normal state (matches dashboard's indigo)
108110
if pr.IsBlocked || pr.NeedsReview {
109-
emoji = "■"
111+
emoji = "🟣" // blocked/needs attention (matches dashboard's purple accent)
110112
}
111113

112-
// Build PR line: repo#number — action • age
114+
// Build PR line: 🟣 repo#number — action • age
113115
// Extract repo name from "owner/repo"
114116
repoParts := strings.SplitN(pr.Repository, "/", 2)
115117
repo := pr.Repository
@@ -118,25 +120,25 @@ func formatPRBlock(pr *PR) slack.Block {
118120
}
119121
prRef := fmt.Sprintf("%s#%d", repo, pr.Number)
120122

121-
line := fmt.Sprintf("%s <%s|%s>", emoji, pr.URL, prRef)
123+
line := fmt.Sprintf("%s <%s|*%s*>", emoji, pr.URL, prRef)
122124

123-
// Add action kind if present
125+
// Add action kind if present - matches dashboard's secondary text style
124126
if pr.ActionKind != "" {
125127
actionDisplay := strings.ReplaceAll(pr.ActionKind, "_", " ")
126-
line = fmt.Sprintf("%s %s", line, actionDisplay)
128+
line = fmt.Sprintf("%s %s", line, actionDisplay)
127129
}
128130

129-
// Add age
131+
// Add age - matches dashboard's tertiary text style
130132
age := formatAge(pr.UpdatedAt)
131-
line = fmt.Sprintf("%s • %s", line, age)
133+
line = fmt.Sprintf("%s • `%s`", line, age)
132134

133-
// Title as secondary line (truncated if too long)
135+
// Title as secondary line (truncated if too long) - matches dashboard's card content
134136
title := pr.Title
135137
if len(title) > 100 {
136138
title = title[:97] + "..."
137139
}
138140

139-
text := fmt.Sprintf("%s\n_%s_", line, title)
141+
text := fmt.Sprintf("%s\n%s", line, title)
140142

141143
return slack.NewSectionBlock(
142144
slack.NewTextBlockObject("mrkdwn", text, false, false),

0 commit comments

Comments
 (0)