Skip to content

Commit c8cef21

Browse files
committed
feat: add community feed, news, events & guidelines panel to community page
1 parent 7254157 commit c8cef21

2 files changed

Lines changed: 575 additions & 1 deletion

File tree

src/pages/community/community.css

Lines changed: 292 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1236,4 +1236,295 @@
12361236

12371237
.item-arrow.rotate {
12381238
transform: rotate(90deg);
1239-
}
1239+
}
1240+
1241+
/* Community Feed Section */
1242+
.community-feed-section {
1243+
padding: 3rem 0;
1244+
}
1245+
1246+
.community-feed-layout {
1247+
display: grid;
1248+
grid-template-columns: 2fr 1fr;
1249+
gap: 2rem;
1250+
align-items: start;
1251+
}
1252+
1253+
@media (max-width: 900px) {
1254+
.community-feed-layout {
1255+
grid-template-columns: 1fr;
1256+
}
1257+
}
1258+
1259+
.community-feed-main {
1260+
display: flex;
1261+
flex-direction: column;
1262+
gap: 1rem;
1263+
}
1264+
1265+
.feed-tabs {
1266+
display: flex;
1267+
gap: 0.5rem;
1268+
border-bottom: 1px solid var(--ifm-color-emphasis-300);
1269+
margin-bottom: 0.5rem;
1270+
}
1271+
1272+
.feed-tab {
1273+
display: flex;
1274+
align-items: center;
1275+
gap: 0.4rem;
1276+
padding: 0.6rem 1rem;
1277+
background: none;
1278+
border: none;
1279+
border-bottom: 2px solid transparent;
1280+
font-weight: 600;
1281+
font-size: 0.9rem;
1282+
color: var(--ifm-color-emphasis-600);
1283+
cursor: pointer;
1284+
transition: color 0.2s ease, border-color 0.2s ease;
1285+
}
1286+
1287+
.feed-tab:hover {
1288+
color: var(--ifm-color-primary);
1289+
}
1290+
1291+
.feed-tab.active {
1292+
color: var(--ifm-color-primary);
1293+
border-bottom-color: var(--ifm-color-primary);
1294+
}
1295+
1296+
.feed-posts {
1297+
display: flex;
1298+
flex-direction: column;
1299+
gap: 1rem;
1300+
}
1301+
1302+
.feed-post-card {
1303+
padding: 1.25rem;
1304+
border-radius: 12px;
1305+
border: 1px solid var(--ifm-color-emphasis-200);
1306+
background: var(--ifm-background-surface-color);
1307+
transition: box-shadow 0.2s ease, transform 0.2s ease;
1308+
}
1309+
1310+
.feed-post-card:hover {
1311+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
1312+
transform: translateY(-2px);
1313+
}
1314+
1315+
.feed-post-header {
1316+
display: flex;
1317+
align-items: center;
1318+
gap: 0.6rem;
1319+
margin-bottom: 0.6rem;
1320+
}
1321+
1322+
.feed-post-avatar {
1323+
font-size: 1.5rem;
1324+
}
1325+
1326+
.feed-post-meta {
1327+
display: flex;
1328+
flex-direction: column;
1329+
}
1330+
1331+
.feed-post-author {
1332+
font-weight: 600;
1333+
font-size: 0.9rem;
1334+
}
1335+
1336+
.feed-post-time {
1337+
font-size: 0.75rem;
1338+
color: var(--ifm-color-emphasis-600);
1339+
}
1340+
1341+
.feed-post-title {
1342+
font-size: 1rem;
1343+
font-weight: 700;
1344+
margin-bottom: 0.4rem;
1345+
}
1346+
1347+
.feed-post-excerpt {
1348+
font-size: 0.875rem;
1349+
color: var(--ifm-color-emphasis-700);
1350+
line-height: 1.5;
1351+
margin-bottom: 0.6rem;
1352+
}
1353+
1354+
.feed-post-footer {
1355+
display: flex;
1356+
gap: 1rem;
1357+
font-size: 0.8rem;
1358+
color: var(--ifm-color-emphasis-600);
1359+
}
1360+
1361+
.feed-social-links {
1362+
display: flex;
1363+
gap: 0.75rem;
1364+
margin-top: 0.5rem;
1365+
flex-wrap: wrap;
1366+
}
1367+
1368+
.feed-social-link {
1369+
display: flex;
1370+
align-items: center;
1371+
gap: 0.5rem;
1372+
padding: 0.6rem 1rem;
1373+
border-radius: 8px;
1374+
background: var(--ifm-color-emphasis-100);
1375+
color: var(--ifm-font-color-base);
1376+
font-weight: 600;
1377+
font-size: 0.85rem;
1378+
text-decoration: none;
1379+
transition: background 0.2s ease;
1380+
}
1381+
1382+
.feed-social-link:hover {
1383+
background: var(--ifm-color-emphasis-200);
1384+
text-decoration: none;
1385+
color: var(--ifm-color-primary);
1386+
}
1387+
1388+
/* Sidebar */
1389+
.community-feed-sidebar {
1390+
display: flex;
1391+
flex-direction: column;
1392+
gap: 1.25rem;
1393+
}
1394+
1395+
.feed-sidebar-card {
1396+
border-radius: 12px;
1397+
border: 1px solid var(--ifm-color-emphasis-200);
1398+
background: var(--ifm-background-surface-color);
1399+
padding: 1.25rem;
1400+
}
1401+
1402+
.feed-sidebar-header {
1403+
display: flex;
1404+
justify-content: space-between;
1405+
align-items: center;
1406+
margin-bottom: 0.9rem;
1407+
}
1408+
1409+
.feed-sidebar-header h4 {
1410+
margin: 0;
1411+
font-size: 0.95rem;
1412+
}
1413+
1414+
.feed-sidebar-see-all {
1415+
display: flex;
1416+
align-items: center;
1417+
gap: 0.3rem;
1418+
font-size: 0.75rem;
1419+
color: var(--ifm-color-primary);
1420+
text-decoration: none;
1421+
}
1422+
1423+
.feed-news-item {
1424+
display: flex;
1425+
gap: 0.75rem;
1426+
align-items: flex-start;
1427+
padding: 0.6rem 0;
1428+
border-bottom: 1px solid var(--ifm-color-emphasis-200);
1429+
}
1430+
1431+
.feed-news-item:last-child {
1432+
border-bottom: none;
1433+
padding-bottom: 0;
1434+
}
1435+
1436+
.feed-news-thumb {
1437+
font-size: 1.5rem;
1438+
line-height: 1;
1439+
}
1440+
1441+
.feed-news-title {
1442+
font-size: 0.85rem;
1443+
font-weight: 600;
1444+
margin: 0 0 0.2rem;
1445+
line-height: 1.3;
1446+
}
1447+
1448+
.feed-news-meta {
1449+
font-size: 0.72rem;
1450+
color: var(--ifm-color-emphasis-600);
1451+
}
1452+
1453+
.feed-event-item {
1454+
display: flex;
1455+
gap: 0.75rem;
1456+
align-items: center;
1457+
padding: 0.6rem 0;
1458+
border-bottom: 1px solid var(--ifm-color-emphasis-200);
1459+
}
1460+
1461+
.feed-event-item:last-child {
1462+
border-bottom: none;
1463+
padding-bottom: 0;
1464+
}
1465+
1466+
.feed-event-date {
1467+
display: flex;
1468+
flex-direction: column;
1469+
align-items: center;
1470+
justify-content: center;
1471+
width: 44px;
1472+
height: 44px;
1473+
border-radius: 8px;
1474+
color: #fff;
1475+
font-weight: 700;
1476+
flex-shrink: 0;
1477+
}
1478+
1479+
.feed-event-date span {
1480+
font-size: 1rem;
1481+
line-height: 1;
1482+
}
1483+
1484+
.feed-event-date small {
1485+
font-size: 0.6rem;
1486+
letter-spacing: 0.05em;
1487+
}
1488+
1489+
.feed-event-title {
1490+
font-size: 0.85rem;
1491+
font-weight: 600;
1492+
margin: 0 0 0.2rem;
1493+
}
1494+
1495+
.feed-event-time {
1496+
font-size: 0.72rem;
1497+
color: var(--ifm-color-emphasis-600);
1498+
}
1499+
1500+
.feed-guidelines-card {
1501+
display: flex;
1502+
align-items: center;
1503+
gap: 0.9rem;
1504+
text-decoration: none;
1505+
color: var(--ifm-font-color-base);
1506+
transition: border-color 0.2s ease;
1507+
}
1508+
1509+
.feed-guidelines-card:hover {
1510+
border-color: var(--ifm-color-primary);
1511+
text-decoration: none;
1512+
color: var(--ifm-font-color-base);
1513+
}
1514+
1515+
.feed-guidelines-icon {
1516+
font-size: 1.4rem;
1517+
color: var(--ifm-color-primary);
1518+
flex-shrink: 0;
1519+
}
1520+
1521+
.feed-guidelines-title {
1522+
font-size: 0.9rem;
1523+
font-weight: 700;
1524+
margin: 0 0 0.2rem;
1525+
}
1526+
1527+
.feed-guidelines-sub {
1528+
font-size: 0.78rem;
1529+
color: var(--ifm-color-emphasis-600);
1530+
}

0 commit comments

Comments
 (0)