Clean up template - Remove dev docs, enhance .gitignore, remove IDE files
This commit is contained in:
parent
06c580ce97
commit
0a44bdde25
70
.gitignore
vendored
70
.gitignore
vendored
@ -8,14 +8,48 @@ dist
|
|||||||
# Node dependencies
|
# Node dependencies
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
|
# Package manager files
|
||||||
|
package-lock.json
|
||||||
|
pnpm-lock.yaml
|
||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
*.log
|
*.log
|
||||||
|
logs/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage/
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.fleet
|
.fleet
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/settings.json
|
||||||
|
.vscode/launch.json
|
||||||
|
.vscode/extensions.json
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
# Local env files
|
# Local env files
|
||||||
.env
|
.env
|
||||||
.env.*
|
.env.*
|
||||||
@ -23,3 +57,39 @@ node_modules
|
|||||||
|
|
||||||
# Uploads directory
|
# Uploads directory
|
||||||
public/uploads/
|
public/uploads/
|
||||||
|
|
||||||
|
# Development and testing files
|
||||||
|
test-*.md
|
||||||
|
fixes-*.md
|
||||||
|
debug-*.md
|
||||||
|
*-debug.*
|
||||||
|
*-test.*
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
.tmp/
|
||||||
|
.temp/
|
||||||
|
|
||||||
|
# Database files
|
||||||
|
*.sqlite
|
||||||
|
*.sqlite3
|
||||||
|
*.db
|
||||||
|
|
||||||
|
# IDE and editor files
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
*.sublime-*
|
||||||
|
.brackets.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# Backup files
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
*~
|
||||||
|
.#*
|
||||||
|
|
||||||
|
# Documentation drafts (keep main docs)
|
||||||
|
draft-*.md
|
||||||
|
notes-*.md
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"vue3snippets.enable-compile-vue-file-on-did-save-code": true
|
|
||||||
}
|
|
@ -1,161 +0,0 @@
|
|||||||
# Site Settings Feature
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
The Site Settings feature allows administrators to customize the appearance and branding of the application through a user-friendly interface. All settings are globally applied across the entire application including SEO, meta tags, and visual elements.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
### 1. Basic Information
|
|
||||||
- **Site Name**: Customize the application name displayed globally in:
|
|
||||||
- Header and sidebar
|
|
||||||
- Browser title and meta tags
|
|
||||||
- SEO and Open Graph tags
|
|
||||||
- Loading screen
|
|
||||||
- All pages and components
|
|
||||||
- **Site Description**: Set a description used for:
|
|
||||||
- SEO meta descriptions
|
|
||||||
- Open Graph descriptions
|
|
||||||
- Twitter Card descriptions
|
|
||||||
- **Theme Selection**: Choose from available themes:
|
|
||||||
- Standard themes (from themeList.js)
|
|
||||||
- Accessibility themes (from themeList2.js)
|
|
||||||
- Custom themes added to theme.css
|
|
||||||
|
|
||||||
### 2. Branding
|
|
||||||
- **Site Logo**: Upload a custom logo displayed in:
|
|
||||||
- Header (horizontal layout)
|
|
||||||
- Sidebar (vertical layout)
|
|
||||||
- Loading screen
|
|
||||||
- Login page
|
|
||||||
- Any component using site settings
|
|
||||||
- **Favicon**: Upload a custom favicon displayed in:
|
|
||||||
- Browser tabs
|
|
||||||
- Bookmarks
|
|
||||||
- Mobile home screen icons
|
|
||||||
|
|
||||||
### 3. Advanced Settings
|
|
||||||
- **Custom CSS**: Add custom CSS injected into document head
|
|
||||||
- **Custom Theme File**: Upload CSS files saved to `/assets/style/css/`
|
|
||||||
- **Add Custom Theme to theme.css**: Directly add themes to the main theme.css file
|
|
||||||
|
|
||||||
## How to Access
|
|
||||||
|
|
||||||
1. Navigate to **Pentadbiran** → **Konfigurasi** → **Site Settings**
|
|
||||||
2. Use the tabbed interface:
|
|
||||||
- **Basic Info**: Site name, description, and theme selection
|
|
||||||
- **Branding**: Logo and favicon uploads
|
|
||||||
- **Advanced**: Custom CSS and theme management
|
|
||||||
3. Use the **Live Preview** panel to see changes in real-time
|
|
||||||
4. Click **Save Changes** to apply your settings
|
|
||||||
|
|
||||||
## Technical Implementation
|
|
||||||
|
|
||||||
### Database Schema
|
|
||||||
The settings are stored in the `site_settings` table with the following fields:
|
|
||||||
- `siteName`, `siteDescription`
|
|
||||||
- `siteLogo`, `siteFavicon`
|
|
||||||
- `selectedTheme` - Selected theme name
|
|
||||||
- `customCSS`, `customThemeFile`
|
|
||||||
- Legacy fields maintained for backward compatibility
|
|
||||||
|
|
||||||
### API Endpoints
|
|
||||||
- `GET /api/devtool/config/site-settings` - Retrieve current settings
|
|
||||||
- `POST /api/devtool/config/site-settings` - Update settings
|
|
||||||
- `POST /api/devtool/config/upload-file` - Upload files (logos, themes)
|
|
||||||
- `POST /api/devtool/config/add-custom-theme` - Add custom theme to theme.css
|
|
||||||
|
|
||||||
### File Upload Locations
|
|
||||||
- **Logo and Favicon files**: Saved to `public/uploads/site-settings/`
|
|
||||||
- **Theme CSS files**: Saved to `assets/style/css/` directory
|
|
||||||
- **Custom themes**: Added directly to `assets/style/css/base/theme.css`
|
|
||||||
|
|
||||||
### Composable
|
|
||||||
The `useSiteSettings()` composable provides:
|
|
||||||
- `siteSettings` - Reactive settings object
|
|
||||||
- `loadSiteSettings()` - Load settings from API
|
|
||||||
- `updateSiteSettings()` - Update settings
|
|
||||||
- `setTheme()` - Set theme using existing theme system
|
|
||||||
- `getCurrentTheme()` - Get current theme
|
|
||||||
- `applyThemeSettings()` - Apply theme changes to DOM
|
|
||||||
- `updateGlobalMeta()` - Update global meta tags and SEO
|
|
||||||
- `addCustomThemeToFile()` - Add custom theme to theme.css
|
|
||||||
|
|
||||||
### Global Integration
|
|
||||||
The site settings are globally integrated across:
|
|
||||||
|
|
||||||
#### Header Component
|
|
||||||
- Uses site settings for logo and name display
|
|
||||||
- Theme selection dropdown uses same system as site settings
|
|
||||||
- Synced with site settings theme selection
|
|
||||||
|
|
||||||
#### Loading Component
|
|
||||||
- Uses site logo if available, fallback to default
|
|
||||||
- Displays site name in loading screen
|
|
||||||
|
|
||||||
#### App.vue
|
|
||||||
- Global meta tags updated from site settings
|
|
||||||
- Title, description, and favicon managed globally
|
|
||||||
- Theme initialization from site settings
|
|
||||||
|
|
||||||
#### SEO and Meta Tags
|
|
||||||
- Document title updated globally
|
|
||||||
- Meta descriptions for SEO
|
|
||||||
- Open Graph tags for social sharing
|
|
||||||
- Twitter Card tags
|
|
||||||
- Favicon and apple-touch-icon
|
|
||||||
|
|
||||||
### Theme System Integration
|
|
||||||
- Integrates with existing theme system (themeList.js, themeList2.js)
|
|
||||||
- Theme selection in header dropdown synced with site settings
|
|
||||||
- Custom themes can be added directly to theme.css
|
|
||||||
- Backward compatibility with existing theme structure
|
|
||||||
|
|
||||||
### Custom Theme Structure
|
|
||||||
Custom themes added to theme.css should follow this structure:
|
|
||||||
```css
|
|
||||||
html[data-theme="your-theme-name"] {
|
|
||||||
--color-primary: 255, 0, 0;
|
|
||||||
--color-secondary: 0, 255, 0;
|
|
||||||
--color-success: 0, 255, 0;
|
|
||||||
--color-info: 0, 0, 255;
|
|
||||||
--color-warning: 255, 255, 0;
|
|
||||||
--color-danger: 255, 0, 0;
|
|
||||||
/* Add your theme variables here */
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Default Values
|
|
||||||
If no settings are configured, the system uses these defaults:
|
|
||||||
- Site Name: "corradAF"
|
|
||||||
- Site Description: "corradAF Base Project"
|
|
||||||
- Selected Theme: "biasa"
|
|
||||||
- Logo: Default corradAF logo
|
|
||||||
- Favicon: Default favicon
|
|
||||||
|
|
||||||
## Migration Notes
|
|
||||||
- Legacy color fields (primaryColor, secondaryColor, etc.) are maintained for backward compatibility
|
|
||||||
- `themeMode` field is mapped to `selectedTheme` for compatibility
|
|
||||||
- Existing installations will automatically use default values
|
|
||||||
- Theme selection integrates with existing theme dropdown in header
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- Changes are applied immediately in the preview
|
|
||||||
- Theme changes affect the entire application
|
|
||||||
- Custom CSS is injected into the document head
|
|
||||||
- Theme files are saved to `/assets/style/css/` for proper integration
|
|
||||||
- File uploads are validated for type and size
|
|
||||||
- Settings persist across browser sessions
|
|
||||||
- Site name and description updates are reflected globally and immediately
|
|
||||||
- All meta tags and SEO elements are automatically updated
|
|
||||||
- Logo changes are reflected in all components that use site settings
|
|
||||||
|
|
||||||
### Important Notes
|
|
||||||
- Changes are applied immediately in the preview
|
|
||||||
- Theme changes affect the entire application
|
|
||||||
- Custom CSS is injected into the document head
|
|
||||||
- Theme files are saved to `/assets/style/css/` for proper integration
|
|
||||||
- File uploads are validated for type and size
|
|
||||||
- Settings persist across browser sessions
|
|
||||||
- Site name and description updates are reflected globally and immediately
|
|
||||||
- All meta tags and SEO elements are automatically updated
|
|
||||||
- Logo changes are reflected in all components that use site settings
|
|
122
fixes-summary.md
122
fixes-summary.md
@ -1,122 +0,0 @@
|
|||||||
# Fixes Implemented ✅
|
|
||||||
|
|
||||||
## 1. Header Title Not Showing Issue 🔧
|
|
||||||
|
|
||||||
**Problem**: Site name not appearing in header even when toggle is enabled
|
|
||||||
|
|
||||||
**Root Cause**: Header component only showed site name in horizontal layout (`v-else` condition), but most of the time the layout is vertical
|
|
||||||
|
|
||||||
**Fixes Applied**:
|
|
||||||
- ✅ Added site name display to both vertical AND horizontal header layouts
|
|
||||||
- ✅ Enhanced site settings loading in Header component's `onMounted` hook
|
|
||||||
- ✅ Added immediate watchers to sync toggle changes with global site settings
|
|
||||||
- ✅ Added debug info panel to troubleshoot site settings state
|
|
||||||
|
|
||||||
**Files Modified**:
|
|
||||||
- `components/layouts/Header.vue` - Added site name to vertical layout
|
|
||||||
- `pages/devtool/config/site-settings/index.vue` - Enhanced watchers and debugging
|
|
||||||
|
|
||||||
## 2. Button Styling Standardization 🎨
|
|
||||||
|
|
||||||
**Problem**: Inconsistent button styling across tabs
|
|
||||||
|
|
||||||
**Standardization Applied**:
|
|
||||||
- ✅ All upload buttons: `variant="outline" size="sm"`
|
|
||||||
- ✅ Save Changes button: `variant="primary" size="sm"`
|
|
||||||
- ✅ Reset button: `variant="outline" size="sm"`
|
|
||||||
- ✅ Apply Font button: `variant="outline" size="sm"` (changed from primary)
|
|
||||||
|
|
||||||
**Consistent Button Pattern**:
|
|
||||||
```vue
|
|
||||||
<rs-button variant="outline" size="sm">
|
|
||||||
<Icon name="ic:outline-[icon]" class="mr-1" />
|
|
||||||
Action Text
|
|
||||||
</rs-button>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Files Modified**:
|
|
||||||
- `pages/devtool/config/site-settings/index.vue` - Standardized Apply Font button
|
|
||||||
|
|
||||||
## 3. Site Settings Description Padding 📝
|
|
||||||
|
|
||||||
**Problem**: "Configure your platform's branding, appearance, SEO, and functionality" text had improper padding for two lines
|
|
||||||
|
|
||||||
**Fix Applied**:
|
|
||||||
- ✅ Added `leading-relaxed` class for better line height
|
|
||||||
- ✅ Improved text readability and spacing
|
|
||||||
|
|
||||||
**Before**:
|
|
||||||
```vue
|
|
||||||
<p>Configure your platform's branding, appearance, SEO, and functionality.</p>
|
|
||||||
```
|
|
||||||
|
|
||||||
**After**:
|
|
||||||
```vue
|
|
||||||
<p class="leading-relaxed">Configure your platform's branding, appearance, SEO, and functionality.</p>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Files Modified**:
|
|
||||||
- `pages/devtool/config/site-settings/index.vue` - Enhanced info card description
|
|
||||||
|
|
||||||
## Additional Improvements 🚀
|
|
||||||
|
|
||||||
### Enhanced Toggle Functionality
|
|
||||||
- ✅ Real-time toggle updates without requiring save
|
|
||||||
- ✅ Immediate sync between settings page and global state
|
|
||||||
- ✅ Both header and sidemenu respect the toggle setting
|
|
||||||
|
|
||||||
### Debug Information
|
|
||||||
- ✅ Added debug panel in live preview showing:
|
|
||||||
- Current site name
|
|
||||||
- Toggle state (Yes/No)
|
|
||||||
- Font size in pixels
|
|
||||||
- ✅ Helps troubleshoot configuration issues
|
|
||||||
|
|
||||||
### Header Logic Improvements
|
|
||||||
- ✅ Site name now shows in both vertical and horizontal layouts
|
|
||||||
- ✅ Proper font size scaling in sidemenu (65% of header size)
|
|
||||||
- ✅ Automatic site settings loading on component mount
|
|
||||||
|
|
||||||
## Testing Verification ✅
|
|
||||||
|
|
||||||
**Header Display Test**:
|
|
||||||
1. ✅ Site name appears in vertical layout (default)
|
|
||||||
2. ✅ Site name appears in horizontal layout
|
|
||||||
3. ✅ Toggle OFF hides name in both layouts
|
|
||||||
4. ✅ Toggle ON shows name in both layouts
|
|
||||||
5. ✅ Font size applies correctly
|
|
||||||
6. ✅ Changes are immediate
|
|
||||||
|
|
||||||
**Button Consistency Test**:
|
|
||||||
1. ✅ All upload buttons use outline variant
|
|
||||||
2. ✅ Save button uses primary variant
|
|
||||||
3. ✅ Reset button uses outline variant
|
|
||||||
4. ✅ All buttons have consistent size (sm)
|
|
||||||
5. ✅ Icons are properly positioned with mr-1
|
|
||||||
|
|
||||||
**Description Styling Test**:
|
|
||||||
1. ✅ Text has proper line height for readability
|
|
||||||
2. ✅ Padding appears natural for two-line content
|
|
||||||
3. ✅ Dark mode compatibility maintained
|
|
||||||
|
|
||||||
## Files Changed Summary 📁
|
|
||||||
|
|
||||||
1. **components/layouts/Header.vue**
|
|
||||||
- Added site name to vertical layout
|
|
||||||
- Enhanced site settings loading
|
|
||||||
- Improved responsive layout handling
|
|
||||||
|
|
||||||
2. **pages/devtool/config/site-settings/index.vue**
|
|
||||||
- Standardized button variants and sizes
|
|
||||||
- Added debug information panel
|
|
||||||
- Enhanced toggle watching and real-time updates
|
|
||||||
- Improved description line height
|
|
||||||
- Fixed immediate change application
|
|
||||||
|
|
||||||
## Next Steps 🎯
|
|
||||||
|
|
||||||
1. Test the site settings page at `/devtool/config/site-settings`
|
|
||||||
2. Verify header displays site name when toggle is enabled
|
|
||||||
3. Check that all buttons follow consistent styling
|
|
||||||
4. Confirm description text has proper spacing
|
|
||||||
5. Use debug panel to troubleshoot any remaining issues
|
|
@ -212,7 +212,7 @@ function getColorClasses(color) {
|
|||||||
<Icon name="mdi:arrow-right" size="16" class="ml-1 group-hover:ml-2 transition-all" />
|
<Icon name="mdi:arrow-right" size="16" class="ml-1 group-hover:ml-2 transition-all" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</rs-card>
|
</rs-card>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,121 +0,0 @@
|
|||||||
# Site Settings Features Test Guide
|
|
||||||
|
|
||||||
## Features Implemented ✅
|
|
||||||
|
|
||||||
### 1. Font Size Stepper for Site Name
|
|
||||||
**Location**: Site Settings > Appearance Tab > Site Name Styling
|
|
||||||
|
|
||||||
**Test Steps**:
|
|
||||||
1. Navigate to `/devtool/config/site-settings`
|
|
||||||
2. Click on the "Appearance" tab
|
|
||||||
3. Locate the "Site Name Font Size" section
|
|
||||||
4. Use the stepper buttons (+/-) to change the font size (12px - 36px)
|
|
||||||
5. Observe the live preview showing the size change
|
|
||||||
6. Check the current size indicator showing the exact pixel value
|
|
||||||
|
|
||||||
**Expected Results**:
|
|
||||||
- Font size changes in real-time in the preview
|
|
||||||
- Size indicator updates with current pixel value
|
|
||||||
- Header and sidemenu site name reflect the new size after saving
|
|
||||||
|
|
||||||
### 2. Google Fonts Suggestions Dropdown
|
|
||||||
**Location**: Site Settings > Appearance Tab > Font Configuration
|
|
||||||
|
|
||||||
**Test Steps**:
|
|
||||||
1. In the same "Appearance" tab, scroll to "Font Configuration"
|
|
||||||
2. Open the "Popular Google Fonts" dropdown
|
|
||||||
3. Select a font (e.g., "Inter", "Poppins", "Roboto")
|
|
||||||
4. Verify the font is applied immediately
|
|
||||||
5. Check that a success toast notification appears
|
|
||||||
6. Verify the "Current Font" section updates
|
|
||||||
|
|
||||||
**Expected Results**:
|
|
||||||
- Dropdown contains 15 popular Google Fonts
|
|
||||||
- Font applies immediately when selected
|
|
||||||
- Success notification shows: "[Font Name] font applied successfully"
|
|
||||||
- Current font section shows the new font name and Google Fonts URL
|
|
||||||
- Dropdown resets after selection
|
|
||||||
|
|
||||||
### 3. Show Site Name in Header Toggle
|
|
||||||
**Location**: Site Settings > Basic Tab
|
|
||||||
|
|
||||||
**Test Steps**:
|
|
||||||
1. Go to the "Basic" tab
|
|
||||||
2. Locate the "Show site name in header" toggle
|
|
||||||
3. Toggle it OFF
|
|
||||||
4. Navigate to any other page
|
|
||||||
5. Check the header - site name should be hidden
|
|
||||||
6. Return to settings and toggle it ON
|
|
||||||
7. Check the header - site name should be visible again
|
|
||||||
|
|
||||||
**Expected Results**:
|
|
||||||
- When OFF: Site name is hidden in both header and sidemenu
|
|
||||||
- When ON: Site name is visible in both header and sidemenu
|
|
||||||
- Changes apply immediately without needing to save
|
|
||||||
|
|
||||||
### 4. Consistent UI Components
|
|
||||||
**Verification Points**:
|
|
||||||
- Uses `rs-button` components with proper variants (primary, outline)
|
|
||||||
- Uses `rs-card` components for layout
|
|
||||||
- Consistent spacing and typography
|
|
||||||
- Uses `FontSizeStepper` component with proper props
|
|
||||||
- Proper dark mode support
|
|
||||||
- Icons from Iconify (`ic:` prefix)
|
|
||||||
|
|
||||||
**Design Patterns Used**:
|
|
||||||
- Border rounded containers with proper padding
|
|
||||||
- Gray borders with dark mode variants
|
|
||||||
- Consistent form input styling
|
|
||||||
- Proper spacing with Tailwind classes
|
|
||||||
- Live preview sidebar with real-time updates
|
|
||||||
|
|
||||||
## Database Fields Added ✅
|
|
||||||
|
|
||||||
- `siteNameFontSize` (Int, default: 18) - Already existed in Prisma schema
|
|
||||||
- Field is properly handled in API endpoints
|
|
||||||
- Synced with global site settings composable
|
|
||||||
|
|
||||||
## API Integration ✅
|
|
||||||
|
|
||||||
- All settings are saved to `/api/devtool/config/site-settings`
|
|
||||||
- Font size is included in the POST request body
|
|
||||||
- Settings load correctly on page refresh
|
|
||||||
- Changes persist across browser sessions
|
|
||||||
|
|
||||||
## Components Updated ✅
|
|
||||||
|
|
||||||
1. **pages/devtool/config/site-settings/index.vue**
|
|
||||||
- Added font size stepper
|
|
||||||
- Added Google Fonts dropdown
|
|
||||||
- Enhanced live preview
|
|
||||||
- Added visual feedback
|
|
||||||
|
|
||||||
2. **components/layouts/Header.vue**
|
|
||||||
- Applied dynamic font sizing
|
|
||||||
- Respects show/hide toggle
|
|
||||||
|
|
||||||
3. **components/layouts/sidemenu/index.vue**
|
|
||||||
- Applied scaled font sizing
|
|
||||||
- Respects show/hide toggle
|
|
||||||
|
|
||||||
4. **composables/useSiteSettings.js**
|
|
||||||
- Added siteNameFontSize field
|
|
||||||
- Maintains global state consistency
|
|
||||||
|
|
||||||
## Testing Checklist ✅
|
|
||||||
|
|
||||||
- [ ] Font size stepper works (12px - 36px range)
|
|
||||||
- [ ] Font size preview updates in real-time
|
|
||||||
- [ ] Font size applies to header site name
|
|
||||||
- [ ] Font size applies to sidemenu site name (scaled)
|
|
||||||
- [ ] Google Fonts dropdown has 15 options
|
|
||||||
- [ ] Google Font selection applies immediately
|
|
||||||
- [ ] Font source URL updates when Google Font selected
|
|
||||||
- [ ] Show/hide toggle works for header
|
|
||||||
- [ ] Show/hide toggle works for sidemenu
|
|
||||||
- [ ] Live preview sidebar reflects all changes
|
|
||||||
- [ ] Settings save and persist correctly
|
|
||||||
- [ ] Dark mode compatibility
|
|
||||||
- [ ] Mobile responsiveness
|
|
||||||
- [ ] Toast notifications appear for font changes
|
|
||||||
- [ ] All UI components follow design system
|
|
Loading…
x
Reference in New Issue
Block a user