Skip to main content
Glama
main.css13.2 kB
/* Apple-inspired Design System */ /* CSS Variables for Design System */ :root { /* Apple Colors */ --apple-blue: #007aff; --apple-blue-light: #5ac8fa; --apple-blue-dark: #0051d0; --apple-green: #28cd41; --apple-orange: #ff9500; --apple-red: #ff3b30; --apple-purple: #af52de; --apple-teal: #59c7c8; /* Neutral Colors */ --system-gray: #8e8e93; --system-gray-2: #aeaeb2; --system-gray-3: #c7c7cc; --system-gray-4: #d1d1d6; --system-gray-5: #e5e5ea; --system-gray-6: #f2f2f7; /* Background Colors */ --bg-primary: #ffffff; --bg-secondary: #f8f9fa; --bg-tertiary: #f2f2f7; --bg-quaternary: rgba(116, 116, 128, 0.08); --bg-hover: rgba(0, 0, 0, 0.04); --bg-error: rgba(255, 59, 48, 0.05); --border-error: rgba(255, 59, 48, 0.2); /* Text Colors */ --text-primary: #1d1d1f; --text-secondary: #86868b; --text-tertiary: #6e6e73; --text-quaternary: #86868b; --text-disabled: #c7c7cc; /* Border & Shadow */ --border-color: rgba(0, 0, 0, 0.08); --shadow-light: 0 2px 16px rgba(0, 0, 0, 0.04); --shadow-medium: 0 4px 24px rgba(0, 0, 0, 0.08); --shadow-heavy: 0 8px 32px rgba(0, 0, 0, 0.12); /* Border Radius */ --radius-small: 8px; --radius-medium: 12px; --radius-large: 16px; --radius-xl: 20px; /* Spacing */ --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --spacing-2xl: 48px; } /* Dark Theme Variables */ .dark { /* Background Colors */ --bg-primary: #1c1c1e; --bg-secondary: #2c2c2e; --bg-tertiary: #3a3a3c; --bg-quaternary: rgba(116, 116, 128, 0.16); --bg-hover: rgba(255, 255, 255, 0.08); --bg-error: rgba(255, 59, 48, 0.1); --border-error: rgba(255, 59, 48, 0.3); /* Text Colors */ --text-primary: #ffffff; --text-secondary: #98989d; --text-tertiary: #8e8e93; --text-quaternary: #636366; --text-disabled: #48484a; /* Border & Shadow */ --border-color: rgba(255, 255, 255, 0.12); --shadow-light: 0 2px 16px rgba(0, 0, 0, 0.2); --shadow-medium: 0 4px 24px rgba(0, 0, 0, 0.3); --shadow-heavy: 0 8px 32px rgba(0, 0, 0, 0.4); /* Neutral Colors for Dark Theme */ --system-gray: #8e8e93; --system-gray-2: #636366; --system-gray-3: #48484a; --system-gray-4: #3a3a3c; --system-gray-5: #2c2c2e; --system-gray-6: #1c1c1e; } /* Global Reset & Base Styles */ * { box-sizing: border-box; } html, body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif; background: var(--bg-secondary); color: var(--text-primary); line-height: 1.5; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } #app { min-height: 100vh; background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%); } /* Typography */ .gradient-text { background: linear-gradient(135deg, var(--apple-blue) 0%, var(--apple-purple) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 600; } /* Apple-style Glassmorphism */ .glass-card { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(20px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: var(--radius-large); box-shadow: var(--shadow-medium); } .dark .glass-card { background: rgba(28, 28, 30, 0.85); border: 1px solid rgba(255, 255, 255, 0.08); } /* Enhanced Hover Effects */ .shadow-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .shadow-hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-heavy); } /* Apple-style Buttons */ .apple-button { background: var(--apple-blue); color: white; border: none; border-radius: var(--radius-medium); padding: var(--spacing-md) var(--spacing-xl); font-weight: 500; font-size: 16px; cursor: pointer; transition: all 0.2s ease; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; } .apple-button:hover { background: var(--apple-blue-dark); transform: translateY(-1px); } .apple-button:active { transform: translateY(0); } .apple-button-secondary { background: var(--system-gray-6); color: var(--text-primary); } .apple-button-secondary:hover { background: var(--system-gray-5); } /* Element Plus Apple-style Customizations */ /* Cards */ .el-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-large); box-shadow: var(--shadow-light); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .el-card:hover { box-shadow: var(--shadow-medium); transform: translateY(-2px); } .el-card__header { background: var(--bg-primary); border-bottom: 1px solid var(--border-color); padding: var(--spacing-lg) !important; font-weight: 600; color: var(--text-primary); } .el-card__body { padding: var(--spacing-lg) !important; } /* Buttons */ .el-button { border-radius: var(--radius-medium); font-weight: 500; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); min-height: 40px; padding: var(--spacing-sm) var(--spacing-lg); } .el-button--primary { background: var(--apple-blue); border-color: var(--apple-blue); color: white; } .el-button--primary:hover { background: var(--apple-blue-dark); border-color: var(--apple-blue-dark); transform: translateY(-1px); } .el-button--success { background: var(--apple-green); border-color: var(--apple-green); } .el-button--warning { background: var(--apple-orange); border-color: var(--apple-orange); } .el-button--danger { background: var(--apple-red); border-color: var(--apple-red); } .el-button--large { min-width: 120px; min-height: 44px; font-size: 16px; } /* Inputs */ .el-input__wrapper { border-radius: var(--radius-medium); border: 1px solid var(--border-color); background: var(--bg-primary); transition: all 0.2s ease; } .el-input__wrapper:hover { border-color: var(--system-gray-3); } .el-input__wrapper.is-focus { border-color: var(--apple-blue); box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1); } .el-input__inner { color: var(--text-primary); font-size: 16px; line-height: 1.5; } .el-input__inner::placeholder { color: var(--text-quaternary); } /* Select */ .el-select__wrapper { border-radius: var(--radius-medium); border: 1px solid var(--border-color); background: var(--bg-primary); } .el-select__wrapper.is-focused { border-color: var(--apple-blue); box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1); } /* Upload */ .el-upload-dragger { border-radius: var(--radius-large) !important; border: 2px dashed var(--border-color) !important; background: var(--bg-secondary) !important; transition: all 0.3s ease !important; } .el-upload-dragger:hover { border-color: var(--apple-blue) !important; background: rgba(0, 122, 255, 0.02) !important; } /* Tabs */ .el-tabs--border-card { border: 1px solid var(--border-color); border-radius: var(--radius-large); overflow: hidden; } .el-tabs--border-card .el-tabs__header { background: var(--bg-secondary); border-bottom: 1px solid var(--border-color); margin: 0; } .el-tabs__nav-wrap::after { display: none; } .el-tabs__item { color: var(--text-secondary); font-weight: 500; transition: all 0.2s ease; } .el-tabs__item.is-active { color: var(--apple-blue); background: var(--bg-primary); } .el-tabs__item:hover { color: var(--apple-blue); } /* Tags */ .el-tag { margin: var(--spacing-xs); border-radius: var(--radius-small); border: none; font-weight: 500; padding: var(--spacing-xs) var(--spacing-sm); } .el-tag--primary { background: rgba(0, 122, 255, 0.1); color: var(--apple-blue); } .el-tag--success { background: rgba(40, 205, 65, 0.1); color: var(--apple-green); } .el-tag--warning { background: rgba(255, 149, 0, 0.1); color: var(--apple-orange); } .el-tag--danger { background: rgba(255, 59, 48, 0.1); color: var(--apple-red); } /* Statistics */ .el-statistic__number { font-weight: 600; color: var(--text-primary); font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif; } .el-statistic__title { color: var(--text-secondary); font-weight: 500; } /* Collapse */ .el-collapse { border: 1px solid var(--border-color); border-radius: var(--radius-medium); overflow: hidden; } .el-collapse-item__header { background: var(--bg-secondary); color: var(--text-primary); font-weight: 500; border-bottom: 1px solid var(--border-color); padding: var(--spacing-md) var(--spacing-lg); } .el-collapse-item__wrap { border-bottom: none; } .el-collapse-item__content { padding: var(--spacing-lg); background: var(--bg-primary); } /* Message */ .el-message { border-radius: var(--radius-medium); box-shadow: var(--shadow-medium); border: 1px solid var(--border-color); } .el-message--success { background: rgba(40, 205, 65, 0.05); border-color: rgba(40, 205, 65, 0.2); } .el-message--warning { background: rgba(255, 149, 0, 0.05); border-color: rgba(255, 149, 0, 0.2); } .el-message--error { background: rgba(255, 59, 48, 0.05); border-color: rgba(255, 59, 48, 0.2); } .el-message--info { background: rgba(0, 122, 255, 0.05); border-color: rgba(0, 122, 255, 0.2); } /* Loading */ .el-loading-mask { background-color: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); } .el-loading-spinner .circular { color: var(--apple-blue); } /* Dropdown */ .el-dropdown-menu { border: 1px solid var(--border-color); border-radius: var(--radius-medium); box-shadow: var(--shadow-medium); background: var(--bg-primary); backdrop-filter: blur(20px); } .el-dropdown-menu__item { color: var(--text-primary); transition: all 0.2s ease; } .el-dropdown-menu__item:hover { background: var(--bg-secondary); color: var(--apple-blue); } /* Popover */ .el-popover { border: 1px solid var(--border-color); border-radius: var(--radius-medium); box-shadow: var(--shadow-medium); background: var(--bg-primary); backdrop-filter: blur(20px); } /* Tooltip */ .el-tooltip__popper { background: rgba(0, 0, 0, 0.8); border-radius: var(--radius-small); backdrop-filter: blur(10px); } /* Dialog */ .el-dialog { border-radius: var(--radius-xl); box-shadow: var(--shadow-heavy); border: 1px solid var(--border-color); background: var(--bg-primary); } .el-dialog__header { padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-lg); border-bottom: 1px solid var(--border-color); } .el-dialog__title { font-weight: 600; color: var(--text-primary); } .el-dialog__body { padding: var(--spacing-lg) var(--spacing-xl); } /* Form */ .el-form-item__label { color: var(--text-primary); font-weight: 500; } .el-form-item__error { color: var(--apple-red); font-size: 14px; } /* Progress */ .el-progress-bar__outer { background-color: var(--system-gray-5); border-radius: var(--radius-small); } .el-progress-bar__inner { background: linear-gradient(90deg, var(--apple-blue) 0%, var(--apple-blue-light) 100%); border-radius: var(--radius-small); } /* Switch */ .el-switch.is-checked .el-switch__core { background-color: var(--apple-green); border-color: var(--apple-green); } .el-switch__core { border-radius: 16px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Radio & Checkbox */ .el-radio__input.is-checked .el-radio__inner { background-color: var(--apple-blue); border-color: var(--apple-blue); } .el-checkbox__input.is-checked .el-checkbox__inner { background-color: var(--apple-blue); border-color: var(--apple-blue); } /* Table */ .el-table { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-medium); overflow: hidden; } .el-table th.el-table__cell { background: var(--bg-secondary); color: var(--text-primary); font-weight: 600; border-bottom: 1px solid var(--border-color); } .el-table tr { background: var(--bg-primary); } .el-table tr:hover { background: var(--bg-secondary); } .el-table td.el-table__cell { border-bottom: 1px solid var(--border-color); } /* Pagination */ .el-pagination .el-pager li { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-small); margin: 0 2px; transition: all 0.2s ease; } .el-pagination .el-pager li:hover { background: var(--bg-secondary); } .el-pagination .el-pager li.is-active { background: var(--apple-blue); border-color: var(--apple-blue); color: white; } /* Steps */ .el-steps { margin: var(--spacing-lg) 0; } .el-step__title { color: var(--text-primary); font-weight: 500; } .el-step__description { color: var(--text-secondary); } .el-step__head.is-process { background: var(--apple-blue); border-color: var(--apple-blue); } .el-step__head.is-finish { background: var(--apple-green); border-color: var(--apple-green); } /* Responsive Design */ @media (max-width: 768px) { :root { --spacing-md: 12px; --spacing-lg: 18px; --spacing-xl: 24px; } .el-card__header { padding: var(--spacing-md) !important; } .el-card__body { padding: var(--spacing-md) !important; } }

Latest Blog Posts

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/zaizaizhao/mcp-swagger-server'

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