mbudisic commited on
Commit
7423d7e
Β·
1 Parent(s): 119237b

Changed to sepia theme

Browse files
Files changed (5) hide show
  1. README.md +11 -0
  2. docs/DEVELOPER.md +51 -0
  3. public/theme.json +64 -0
  4. pyproject.toml +1 -1
  5. uv.lock +1 -1
README.md CHANGED
@@ -15,6 +15,17 @@ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-
15
 
16
  An agentic RAG system for the PsTuts dataset that provides AI-powered answers to Adobe Photoshop questions using video tutorial transcripts.
17
 
 
 
 
 
 
 
 
 
 
 
 
18
  ## πŸš€ Getting Started
19
 
20
  1. Install dependencies:
 
15
 
16
  An agentic RAG system for the PsTuts dataset that provides AI-powered answers to Adobe Photoshop questions using video tutorial transcripts.
17
 
18
+ ## 🎨 Visual Theme
19
+
20
+ The application features a beautiful **sepia-toned color scheme** that gives it a vintage, artistic feel perfect for Adobe Photoshop tutorials:
21
+
22
+ - πŸŒ… **Light Theme** (default): Warm cream and tan colors reminiscent of old photography
23
+ - πŸŒ™ **Dark Theme**: Rich coffee and amber tones for comfortable nighttime usage
24
+ - πŸ–ΌοΈ **Sepia Filter**: Subtle sepia treatment on images for visual consistency
25
+ - ⚑ **Smooth Transitions**: Elegant animations when switching between themes
26
+
27
+ Users can toggle between light and dark variants using the theme switcher in the interface.
28
+
29
  ## πŸš€ Getting Started
30
 
31
  1. Install dependencies:
docs/DEVELOPER.md CHANGED
@@ -134,6 +134,57 @@ This feature enables controlled access to external resources while maintaining a
134
  - **`evaluator_utils.py`**: RAG evaluation utilities using RAGAS framework
135
  - **Notebook-based evaluation**: `evaluate_rag.ipynb` for systematic testing
136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  ## πŸš€ Running the Applications
138
 
139
  ### Multi-Agent RAG (Recommended) πŸ€–
 
134
  - **`evaluator_utils.py`**: RAG evaluation utilities using RAGAS framework
135
  - **Notebook-based evaluation**: `evaluate_rag.ipynb` for systematic testing
136
 
137
+ ## 🎨 UI Customization & Theming
138
+
139
+ ### Sepia Theme Implementation πŸ–ΌοΈ
140
+
141
+ The application features a custom **sepia-toned color scheme** implemented through CSS variables and theme switching:
142
+
143
+ #### πŸ“ Theme Files
144
+ - **`public/sepia-theme.css`**: Custom CSS file with sepia color schemes
145
+ - **`.chainlit/config.toml`**: Configuration enabling custom CSS and default theme
146
+
147
+ #### 🎨 Color Palette Design
148
+ ```css
149
+ /* Light Sepia Colors */
150
+ --sepia-lightest: #faf6f0 /* Warm cream background */
151
+ --sepia-lighter: #f4ede1 /* Secondary background */
152
+ --sepia-light: #e8d5b7 /* Tertiary background */
153
+ --sepia-medium: #d4b896 /* Border and accent */
154
+ --sepia-dark: #c19a6b /* Darker accents */
155
+ --sepia-darker: #a67c52 /* Strong borders */
156
+ --sepia-darkest: #8b5a3c /* Deep contrast */
157
+
158
+ /* Dark Sepia Colors */
159
+ --sepia-dark-bg: #2c1810 /* Rich coffee background */
160
+ --sepia-dark-bg-secondary: #3a2318 /* Warmer secondary */
161
+ --sepia-dark-bg-tertiary: #4a2d20 /* Amber tertiary */
162
+ ```
163
+
164
+ #### πŸ”§ Technical Implementation
165
+ - **CSS Variables**: Dynamic theming with `--custom-property` pattern
166
+ - **Theme Detection**: `[data-theme="light"]` and `[data-theme="dark"]` selectors
167
+ - **Smooth Transitions**: `transition` properties for seamless theme switching
168
+ - **Component Styling**: Custom styling for chat messages, buttons, inputs, sidebar
169
+ - **Image Treatment**: Subtle `filter: sepia(20%)` on images for visual consistency
170
+
171
+ #### βš™οΈ Configuration Setup
172
+ ```toml
173
+ # .chainlit/config.toml
174
+ [UI]
175
+ default_theme = "light" # Set light theme as default
176
+ custom_css = "/public/sepia-theme.css" # Enable custom styling
177
+ ```
178
+
179
+ #### 🎯 Features
180
+ - **Responsive Design**: Adapts to both light and dark preferences
181
+ - **Accessibility**: Maintains sufficient contrast ratios in both themes
182
+ - **Visual Cohesion**: Unified sepia treatment across all UI elements
183
+ - **Performance**: CSS-only implementation with minimal runtime overhead
184
+ - **User Control**: Native Chainlit theme switcher toggles between variants
185
+
186
+ The sepia theme creates a warm, nostalgic atmosphere perfect for Adobe Photoshop tutorials, giving the application a distinctive visual identity that stands out from standard blue/gray interfaces. πŸ“Έβœ¨
187
+
188
  ## πŸš€ Running the Applications
189
 
190
  ### Multi-Agent RAG (Recommended) πŸ€–
public/theme.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "custom_fonts": [],
3
+ "variables": {
4
+ "light": {
5
+ "--background": "30 40% 92%",
6
+ "--foreground": "30 90% 15%",
7
+ "--card": "30 30% 85%",
8
+ "--card-foreground": "30 90% 15%",
9
+ "--popover": "30 40% 92%",
10
+ "--popover-foreground": "30 90% 15%",
11
+ "--primary": "25 75% 45%",
12
+ "--primary-foreground": "30 40% 95%",
13
+ "--secondary": "35 25% 75%",
14
+ "--secondary-foreground": "30 90% 15%",
15
+ "--muted": "30 20% 80%",
16
+ "--muted-foreground": "30 40% 35%",
17
+ "--accent": "35 35% 70%",
18
+ "--accent-foreground": "30 90% 15%",
19
+ "--destructive": "0 84% 60%",
20
+ "--destructive-foreground": "30 40% 95%",
21
+ "--border": "30 25% 75%",
22
+ "--input": "30 25% 75%",
23
+ "--ring": "25 75% 45%",
24
+ "--radius": "0.75rem",
25
+ "--sidebar-background": "35 25% 82%",
26
+ "--sidebar-foreground": "30 60% 25%",
27
+ "--sidebar-primary": "30 80% 20%",
28
+ "--sidebar-primary-foreground": "30 40% 95%",
29
+ "--sidebar-accent": "35 20% 88%",
30
+ "--sidebar-accent-foreground": "30 80% 20%",
31
+ "--sidebar-border": "30 25% 70%",
32
+ "--sidebar-ring": "25 75% 45%"
33
+ },
34
+ "dark": {
35
+ "--background": "30 60% 8%",
36
+ "--foreground": "30 40% 85%",
37
+ "--card": "30 50% 12%",
38
+ "--card-foreground": "30 40% 85%",
39
+ "--popover": "30 50% 12%",
40
+ "--popover-foreground": "30 40% 85%",
41
+ "--primary": "25 75% 55%",
42
+ "--primary-foreground": "30 60% 8%",
43
+ "--secondary": "30 40% 18%",
44
+ "--secondary-foreground": "30 40% 85%",
45
+ "--muted": "30 35% 20%",
46
+ "--muted-foreground": "30 25% 65%",
47
+ "--accent": "30 30% 25%",
48
+ "--accent-foreground": "30 40% 85%",
49
+ "--destructive": "0 62% 30%",
50
+ "--destructive-foreground": "30 40% 85%",
51
+ "--border": "30 35% 20%",
52
+ "--input": "30 35% 20%",
53
+ "--ring": "25 75% 55%",
54
+ "--sidebar-background": "30 70% 6%",
55
+ "--sidebar-foreground": "30 30% 80%",
56
+ "--sidebar-primary": "25 65% 50%",
57
+ "--sidebar-primary-foreground": "30 60% 8%",
58
+ "--sidebar-accent": "30 60% 10%",
59
+ "--sidebar-accent-foreground": "30 30% 80%",
60
+ "--sidebar-border": "30 40% 15%",
61
+ "--sidebar-ring": "25 75% 55%"
62
+ }
63
+ }
64
+ }
pyproject.toml CHANGED
@@ -15,7 +15,7 @@ dependencies = [
15
  "langgraph>=0.4.8",
16
  "qdrant-client>=1.8.0",
17
  # API integration
18
- "chainlit>=2.0.4",
19
  "requests>=2.31.0",
20
  "python-dotenv>=0.9.9",
21
  # Utilities
 
15
  "langgraph>=0.4.8",
16
  "qdrant-client>=1.8.0",
17
  # API integration
18
+ "chainlit",
19
  "requests>=2.31.0",
20
  "python-dotenv>=0.9.9",
21
  # Utilities
uv.lock CHANGED
@@ -3806,7 +3806,7 @@ requires-dist = [
3806
  { name = "aiofiles", specifier = ">=23.1.0" },
3807
  { name = "bidict", specifier = ">=0.23.1" },
3808
  { name = "black", marker = "extra == 'dev'", specifier = ">=22.0.0" },
3809
- { name = "chainlit", specifier = ">=2.0.4" },
3810
  { name = "datasets", specifier = ">=3.6.0" },
3811
  { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23.0" },
3812
  { name = "fastapi", marker = "extra == 'web'", specifier = ">=0.115.3,<0.116" },
 
3806
  { name = "aiofiles", specifier = ">=23.1.0" },
3807
  { name = "bidict", specifier = ">=0.23.1" },
3808
  { name = "black", marker = "extra == 'dev'", specifier = ">=22.0.0" },
3809
+ { name = "chainlit" },
3810
  { name = "datasets", specifier = ">=3.6.0" },
3811
  { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23.0" },
3812
  { name = "fastapi", marker = "extra == 'web'", specifier = ">=0.115.3,<0.116" },