Files
backspace/packages/web/tailwind.config.js
T
Jannis Braun 5ef502f2e3 fix: repair invite links, social features, messaging + Discord UI overhaul
Phase 1 - Feature Repair:
- Fix member kick/leave: add missing db.delete() call in servers.ts
- Stabilize invite codes: return existing code instead of regenerating
- Fix user search: use LIKE instead of exact match in social.ts
- Wire DM button on FriendsPage to create/navigate to DM channels
- Add cancel outgoing friend request (DELETE endpoint + frontend)
- Add accept/decline friend request actions with WS real-time events
- Fix replyToId persistence in message creation
- Hydrate reactions and replyTo in message queries
- Add joinByCode to API client and serverStore
- Add friend_request_received/accepted WebSocket events

Phase 2 - Discord UI Overhaul:
- Remove stray borders between layout columns
- Replace shadow-sm with shadow-header on content headers
- Replace all bg-gray-*/text-gray-* with Discord color tokens
- Ensure flat color contrast (#1E1F22, #2B2D31, #313338)

Testing:
- Set up vitest + @testing-library/react + jsdom
- Add 17 tests across InviteModal, JoinServer, FriendsPage (all passing)
- Fix vite resolve.extensions to prefer .tsx over stale .js files
2026-02-18 05:34:45 +01:00

51 lines
1.6 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: [
'./index.html',
'./src/**/*.{js,ts,jsx,tsx}',
],
theme: {
extend: {
colors: {
discord: {
'bg-primary': '#313338',
'bg-secondary': '#2b2d31',
'bg-tertiary': '#1e1f22',
'bg-user-area': '#232428',
'bg-floating': '#111214',
'bg-overlay': 'rgba(0, 0, 0, 0.85)',
'bg-input': '#383a40',
'bg-accent': '#404249',
'text-primary': '#f2f3f5',
'text-normal': '#dbdee1',
'text-secondary': '#b5bac1',
'text-muted': '#949ba4',
'text-link': '#00a8fc',
'text-positive': '#23a559',
'text-warning': '#f0b232',
'text-danger': '#fa777c',
'blurple': '#5865f2',
'blurple-hover': '#4752c4',
'green': '#23a559',
'yellow': '#f0b232',
'red': '#da373c',
'red-hover': '#a12d31',
'modifier-hover': '#35373c',
'modifier-active': '#3b3d42',
'modifier-selected': '#404249',
'modifier-accent': 'hsla(0, 0%, 100%, 0.06)',
},
},
boxShadow: {
'header': '0 1px 0 rgba(4, 4, 5, 0.2), 0 1.5px 0 rgba(6, 6, 7, 0.05), 0 2px 0 rgba(4, 4, 5, 0.05)',
'elevation-low': '0 1px 0 rgba(4, 4, 5, 0.2), 0 1.5px 0 rgba(6, 6, 7, 0.05), 0 2px 0 rgba(4, 4, 5, 0.05)',
'elevation-high': '0 8px 16px rgba(0, 0, 0, 0.24)',
},
fontFamily: {
sans: ['"gg sans"', 'Inter', 'Noto Sans', 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif'],
},
},
},
plugins: [],
};