apps/feeds/static/styles.css 3.0 K raw
1
/* feeds — app-specific styles.
2
 * Shared reset / tokens / components come from /assets/darkmatter.css.
3
 */
4
5
/* The logo wraps an h1 in feeds markup. */
6
7
.logo h1 {
8
  font-size: 28px;
9
  font-weight: 700;
10
  text-transform: uppercase;
11
}
12
13
.about {
14
  display: flex;
15
  flex-direction: column;
16
  gap: 0.5rem;
17
  font-size: 14px;
18
  line-height: 1.25rem;
19
}
20
21
/* Feeds list */
22
23
#feeds-container {
24
  width: 100%;
25
}
26
27
.feeds-list {
28
  width: 100%;
29
  display: flex;
30
  flex-direction: column;
31
  gap: 1.5rem;
32
}
33
34
.feed-item {
35
  width: 100%;
36
  display: flex;
37
  flex-direction: column;
38
  gap: 0.5rem;
39
  padding: 1rem 0;
40
  border-bottom: 1px solid #333;
41
}
42
43
.feed-item:last-child {
44
  border-bottom: none;
45
}
46
47
.feed-meta {
48
  display: flex;
49
  justify-content: space-between;
50
  align-items: center;
51
  font-size: 12px;
52
  opacity: 0.5;
53
}
54
55
.feed-source {
56
  font-weight: 700;
57
}
58
59
.feed-title {
60
  font-size: 16px;
61
  font-weight: 400;
62
  line-height: 1.4;
63
}
64
65
.feed-title a {
66
  text-decoration: none;
67
}
68
69
.feed-author {
70
  font-size: 12px;
71
  opacity: 0.5;
72
  font-style: italic;
73
}
74
75
#feed-urls {
76
  font-size: 12px;
77
  opacity: 0.5;
78
}
79
80
.no-feeds,
81
#loading {
82
  text-align: center;
83
  opacity: 0.5;
84
  padding: 2rem;
85
}
86
87
#error {
88
  text-align: center;
89
  padding: 2rem;
90
}
91
92
/* Admin forms */
93
94
.admin-form {
95
  display: flex;
96
  flex-direction: column;
97
  gap: 0.75rem;
98
  width: 100%;
99
}
100
101
.admin-form h3 {
102
  font-size: 14px;
103
  font-weight: 400;
104
  opacity: 0.5;
105
}
106
107
.admin-notice,
108
.hint {
109
  font-size: 12px;
110
  opacity: 0.5;
111
  line-height: 1.4;
112
}
113
114
/* Discover panel */
115
116
.discover-row {
117
  display: flex;
118
  gap: 0.5rem;
119
  width: 100%;
120
}
121
122
.discover-row input {
123
  flex: 1;
124
}
125
126
.discover-status {
127
  font-size: 12px;
128
}
129
130
.discover-results {
131
  display: flex;
132
  flex-direction: column;
133
  gap: 0.25rem;
134
  width: 100%;
135
}
136
137
.discover-result-item {
138
  background: #121113;
139
  color: #ffffff;
140
  border: 1px solid #333;
141
  padding: 8px 10px;
142
  font-size: 12px;
143
  text-align: left;
144
  cursor: pointer;
145
  width: 100%;
146
  white-space: nowrap;
147
  overflow: hidden;
148
  text-overflow: ellipsis;
149
  opacity: 0.7;
150
  border-radius: 0;
151
  -webkit-appearance: none;
152
  appearance: none;
153
}
154
155
.discover-result-item:hover {
156
  border-color: #555;
157
  opacity: 1;
158
}
159
160
.discover-result-item.active {
161
  border-color: #ffffff;
162
  opacity: 1;
163
}
164
165
/* Admin subs */
166
167
.admin-subs {
168
  width: 100%;
169
  display: flex;
170
  flex-direction: column;
171
  gap: 1rem;
172
}
173
174
.admin-subs h3 {
175
  font-size: 14px;
176
  opacity: 0.5;
177
  font-weight: 400;
178
}
179
180
.feed-item form.inline {
181
  display: flex;
182
  gap: 0.5rem;
183
  align-items: center;
184
}
185
186
.feed-item form.inline input {
187
  flex: 1;
188
}
189
190
/* Generic .danger on buttons (used in admin) */
191
192
button.danger,
193
.btn.danger {
194
  opacity: 0.5;
195
}
196
197
button.danger:hover,
198
.btn.danger:hover {
199
  opacity: 0.3;
200
}
201
202
/* Category list (admin) */
203
204
.category-list {
205
  list-style: none;
206
  margin-left: 0;
207
}
208
209
.category-list li {
210
  display: flex;
211
  justify-content: space-between;
212
  align-items: center;
213
  padding: 0.25rem 0;
214
}
215
216
@media (max-width: 480px) {
217
  .feed-meta {
218
    flex-direction: column;
219
    align-items: flex-start;
220
    gap: 0.25rem;
221
  }
222
223
  .feed-title {
224
    font-size: 14px;
225
  }
226
}