Skip to main content
Glama

Roblox MCP Unified Server

by Rxuser2
components.cssโ€ข9.81 kB
/* ==================================== ๐Ÿ”ง Component Styles - Modals, Forms, Notifications ==================================== */ /* Modal System */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--bg-modal); backdrop-filter: blur(10px); display: none; align-items: center; justify-content: center; z-index: var(--z-modal); animation: fadeIn var(--transition-normal); } .modal.show { display: flex; } .modal-content { background: var(--bg-card); backdrop-filter: blur(20px); border: 1px solid var(--border-color); border-radius: var(--radius-2xl); width: 90%; max-width: 600px; max-height: 90vh; overflow: hidden; box-shadow: var(--shadow-lg); animation: slideInUp var(--transition-normal); } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: var(--spacing-xl); border-bottom: 1px solid var(--border-color); } .modal-header h2 { font-size: 1.5rem; font-weight: 600; display: flex; align-items: center; gap: var(--spacing-md); } .modal-close { background: none; border: none; color: var(--text-muted); font-size: 1.5rem; cursor: pointer; padding: var(--spacing-sm); border-radius: var(--radius-md); transition: all var(--transition-fast); } .modal-close:hover { background: var(--bg-secondary); color: var(--text-primary); } .modal-body { padding: var(--spacing-xl); max-height: 70vh; overflow-y: auto; } /* Form Styles */ .form-group { margin-bottom: var(--spacing-lg); } .form-group label { display: block; font-weight: 600; margin-bottom: var(--spacing-sm); color: var(--text-primary); } .form-group input, .form-group select, .form-group textarea { width: 100%; padding: var(--spacing-md); background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); color: var(--text-primary); font-size: 1rem; font-family: inherit; transition: all var(--transition-fast); } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } .form-group textarea { resize: vertical; min-height: 100px; font-family: var(--font-mono); line-height: 1.5; } .form-group small { display: block; margin-top: var(--spacing-xs); color: var(--text-muted); font-size: 0.875rem; } .checkbox-group { display: flex; align-items: center; gap: var(--spacing-sm); } .checkbox-group input[type="checkbox"] { width: auto; margin: 0; } .form-actions { display: flex; justify-content: flex-end; gap: var(--spacing-md); padding-top: var(--spacing-lg); border-top: 1px solid var(--border-color); margin-top: var(--spacing-xl); } /* Notification System */ .notifications-container { position: fixed; top: var(--spacing-lg); right: var(--spacing-lg); z-index: var(--z-toast); display: flex; flex-direction: column; gap: var(--spacing-sm); max-width: 400px; } .notification { background: var(--bg-card); backdrop-filter: blur(10px); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-lg); box-shadow: var(--shadow-md); display: flex; align-items: flex-start; gap: var(--spacing-md); animation: slideInRight var(--transition-normal); position: relative; overflow: hidden; } .notification::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: var(--border-color); } .notification.success::before { background: var(--secondary-color); } .notification.error::before { background: var(--accent-red); } .notification.warning::before { background: var(--accent-orange); } .notification.info::before { background: var(--primary-color); } .notification-icon { font-size: 1.25rem; flex-shrink: 0; } .notification.success .notification-icon { color: var(--secondary-color); } .notification.error .notification-icon { color: var(--accent-red); } .notification.warning .notification-icon { color: var(--accent-orange); } .notification.info .notification-icon { color: var(--primary-color); } .notification-content { flex: 1; } .notification-title { font-weight: 600; margin-bottom: var(--spacing-xs); color: var(--text-primary); } .notification-message { color: var(--text-secondary); font-size: 0.875rem; line-height: 1.4; } .notification-close { background: none; border: none; color: var(--text-muted); cursor: pointer; padding: var(--spacing-xs); border-radius: var(--radius-sm); transition: all var(--transition-fast); flex-shrink: 0; } .notification-close:hover { background: var(--bg-secondary); color: var(--text-primary); } /* Backup Section Styles */ .backup-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-xl); margin-bottom: var(--spacing-2xl); } .backup-card { background: var(--bg-card); backdrop-filter: blur(10px); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: var(--spacing-xl); text-align: center; transition: all var(--transition-normal); } .backup-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--border-hover); } .backup-card h3 { font-size: 1.25rem; margin-bottom: var(--spacing-md); display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); } .backup-card p { color: var(--text-secondary); margin-bottom: var(--spacing-lg); } .backup-history { background: var(--bg-card); backdrop-filter: blur(10px); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: var(--spacing-xl); } .backup-history h3 { font-size: 1.25rem; margin-bottom: var(--spacing-lg); display: flex; align-items: center; gap: var(--spacing-sm); } .backup-item { display: flex; justify-content: space-between; align-items: center; padding: var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-lg); margin-bottom: var(--spacing-sm); transition: all var(--transition-fast); } .backup-item:hover { background: var(--bg-tertiary); } .backup-info { display: flex; flex-direction: column; gap: var(--spacing-xs); } .backup-name { font-weight: 600; color: var(--text-primary); } .backup-date { font-size: 0.875rem; color: var(--text-muted); } .backup-size { font-size: 0.875rem; color: var(--text-secondary); font-weight: 500; } /* Analytics Styles */ .analytics-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: var(--spacing-xl); } .analytics-card { background: var(--bg-card); backdrop-filter: blur(10px); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: var(--spacing-xl); } .analytics-card h3 { font-size: 1.25rem; margin-bottom: var(--spacing-lg); display: flex; align-items: center; gap: var(--spacing-sm); } .analytics-card canvas { width: 100%; height: 300px; } /* Code Editor Enhancement */ .code-editor { background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-md); font-family: var(--font-mono); font-size: 0.875rem; line-height: 1.5; resize: vertical; min-height: 200px; color: var(--text-primary); } .code-editor:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } /* Syntax Highlighting */ .syntax-lua .keyword { color: #c792ea; } .syntax-lua .string { color: #ecc48d; } .syntax-lua .comment { color: #546e7a; } .syntax-lua .number { color: #f78c6c; } .syntax-lua .function { color: #82aaff; } .syntax-lua .operator { color: #89ddff; } /* Toast Animations */ @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOutRight { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100%); opacity: 0; } } @keyframes slideInUp { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Mobile Optimizations */ @media (max-width: 768px) { .modal-content { width: 95%; max-height: 95vh; } .modal-header, .modal-body { padding: var(--spacing-lg); } .form-actions { flex-direction: column; } .notifications-container { top: var(--spacing-sm); right: var(--spacing-sm); left: var(--spacing-sm); max-width: none; } .backup-grid { grid-template-columns: 1fr; } .analytics-dashboard { grid-template-columns: 1fr; } .analytics-card canvas { height: 250px; } } @media (max-width: 480px) { .backup-item { flex-direction: column; align-items: flex-start; gap: var(--spacing-sm); } .backup-actions { width: 100%; display: flex; justify-content: flex-end; } } /* Accessibility */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } /* Focus Management */ .modal.show { overflow: auto; } .modal:focus-within .modal-content { transform: scale(1); } /* Print Styles */ @media print { .modal, .notifications-container, .sidebar, .app-header { display: none !important; } .main-content { padding: 0; margin: 0; } .content-section { display: block !important; } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rxuser2/Roblox-MCP-Unified'

If you have feedback or need assistance with the MCP directory API, please join our Discord server