|
|
|
|
|
|
| input[type="text"],
|
| input[type="email"],
|
| input[type="password"],
|
| input[type="number"],
|
| input[type="tel"],
|
| input[type="url"],
|
| input[type="search"],
|
| input[type="date"],
|
| input[type="time"],
|
| input[type="datetime-local"],
|
| textarea,
|
| select {
|
| width: 100%;
|
| padding: 12px 16px;
|
| font-family: 'Cairo', 'Tajawal', sans-serif;
|
| font-size: 15px;
|
| font-weight: 500;
|
| line-height: 1.5;
|
| color: var(--text-primary, #1e293b);
|
| background-color: var(--bg-secondary, #f8fafc);
|
| border: 2px solid var(--border-primary, #e2e8f0);
|
| border-radius: 12px;
|
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
| outline: none;
|
| letter-spacing: 0.01em;
|
| }
|
|
|
|
|
| input[type="text"]:focus,
|
| input[type="email"]:focus,
|
| input[type="password"]:focus,
|
| input[type="number"]:focus,
|
| input[type="tel"]:focus,
|
| input[type="url"]:focus,
|
| input[type="search"]:focus,
|
| input[type="date"]:focus,
|
| input[type="time"]:focus,
|
| input[type="datetime-local"]:focus,
|
| textarea:focus,
|
| select:focus {
|
| background-color: var(--bg-primary, #ffffff);
|
| border-color: rgba(251, 191, 36, 0.6);
|
| box-shadow:
|
| 0 0 0 4px rgba(251, 191, 36, 0.1),
|
| 0 4px 12px rgba(251, 191, 36, 0.15);
|
| transform: translateY(-1px);
|
| }
|
|
|
|
|
| input[type="text"]:hover,
|
| input[type="email"]:hover,
|
| input[type="password"]:hover,
|
| input[type="number"]:hover,
|
| input[type="tel"]:hover,
|
| input[type="url"]:hover,
|
| input[type="search"]:hover,
|
| input[type="date"]:hover,
|
| input[type="time"]:hover,
|
| input[type="datetime-local"]:hover,
|
| textarea:hover,
|
| select:hover {
|
| border-color: rgba(251, 191, 36, 0.4);
|
| background-color: var(--bg-tertiary, #ffffff);
|
| }
|
|
|
|
|
| input::placeholder,
|
| textarea::placeholder {
|
| color: var(--text-tertiary, #94a3b8);
|
| font-weight: 400;
|
| opacity: 0.7;
|
| }
|
|
|
| input:focus::placeholder,
|
| textarea:focus::placeholder {
|
| opacity: 0.5;
|
| }
|
|
|
|
|
| textarea {
|
| min-height: 120px;
|
| resize: vertical;
|
| padding: 14px 16px;
|
| line-height: 1.6;
|
| }
|
|
|
|
|
| select {
|
| cursor: pointer;
|
| padding-left: 40px;
|
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%2364748b' d='M4.427 6.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 6H4.604a.25.25 0 00-.177.427z'/%3E%3C/svg%3E");
|
| background-repeat: no-repeat;
|
| background-position: left 12px center;
|
| appearance: none;
|
| -webkit-appearance: none;
|
| -moz-appearance: none;
|
| }
|
|
|
| select:focus {
|
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23fbbf24' d='M4.427 6.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 6H4.604a.25.25 0 00-.177.427z'/%3E%3C/svg%3E");
|
| }
|
|
|
|
|
| .input-with-icon {
|
| position: relative;
|
| display: flex;
|
| align-items: center;
|
| }
|
|
|
| .input-with-icon input {
|
| padding-right: 44px;
|
| }
|
|
|
| .input-with-icon .input-icon {
|
| position: absolute;
|
| right: 14px;
|
| top: 50%;
|
| transform: translateY(-50%);
|
| font-size: 18px;
|
| color: var(--text-tertiary, #94a3b8);
|
| pointer-events: none;
|
| transition: all 0.3s ease;
|
| filter: grayscale(0.3);
|
| }
|
|
|
| .input-with-icon input:focus ~ .input-icon {
|
| color: rgba(251, 191, 36, 0.8);
|
| filter: grayscale(0);
|
| transform: translateY(-50%) scale(1.1);
|
| }
|
|
|
|
|
| input:disabled,
|
| textarea:disabled,
|
| select:disabled {
|
| background-color: var(--bg-disabled, #f1f5f9);
|
| color: var(--text-disabled, #cbd5e1);
|
| cursor: not-allowed;
|
| opacity: 0.6;
|
| }
|
|
|
|
|
| input.error,
|
| textarea.error,
|
| select.error {
|
| border-color: #dc2626;
|
| background-color: rgba(220, 38, 38, 0.05);
|
| }
|
|
|
| input.error:focus,
|
| textarea.error:focus,
|
| select.error:focus {
|
| border-color: #dc2626;
|
| box-shadow:
|
| 0 0 0 4px rgba(220, 38, 38, 0.1),
|
| 0 4px 12px rgba(220, 38, 38, 0.15);
|
| }
|
|
|
|
|
| input.success,
|
| textarea.success,
|
| select.success {
|
| border-color: #059669;
|
| background-color: rgba(5, 150, 105, 0.05);
|
| }
|
|
|
| input.success:focus,
|
| textarea.success:focus,
|
| select.success:focus {
|
| border-color: #059669;
|
| box-shadow:
|
| 0 0 0 4px rgba(5, 150, 105, 0.1),
|
| 0 4px 12px rgba(5, 150, 105, 0.15);
|
| }
|
|
|
|
|
|
|
|
|
| .icon,
|
| [class*="Icon"],
|
| [class*="-icon"] {
|
| display: inline-flex;
|
| align-items: center;
|
| justify-content: center;
|
| font-style: normal;
|
| line-height: 1;
|
| vertical-align: middle;
|
| filter: grayscale(0.2) brightness(1.1);
|
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
| }
|
|
|
|
|
| .icon-xs { font-size: 14px; }
|
| .icon-sm { font-size: 16px; }
|
| .icon-md { font-size: 20px; }
|
| .icon-lg { font-size: 24px; }
|
| .icon-xl { font-size: 32px; }
|
| .icon-2xl { font-size: 40px; }
|
|
|
|
|
| .icon-hover:hover,
|
| button:hover .icon,
|
| a:hover .icon {
|
| filter: grayscale(0) brightness(1.2);
|
| transform: scale(1.1) rotate(5deg);
|
| }
|
|
|
|
|
| .icon-spin {
|
| animation: iconSpin 2s linear infinite;
|
| }
|
|
|
| @keyframes iconSpin {
|
| from {
|
| transform: rotate(0deg);
|
| }
|
| to {
|
| transform: rotate(360deg);
|
| }
|
| }
|
|
|
|
|
| .icon-pulse {
|
| animation: iconPulse 2s ease-in-out infinite;
|
| }
|
|
|
| @keyframes iconPulse {
|
| 0%, 100% {
|
| opacity: 0.7;
|
| transform: scale(1);
|
| }
|
| 50% {
|
| opacity: 1;
|
| transform: scale(1.1);
|
| }
|
| }
|
|
|
|
|
| .icon-float {
|
| animation: iconFloat 3s ease-in-out infinite;
|
| }
|
|
|
| @keyframes iconFloat {
|
| 0%, 100% {
|
| transform: translateY(0) rotate(0deg);
|
| }
|
| 50% {
|
| transform: translateY(-5px) rotate(5deg);
|
| }
|
| }
|
|
|
|
|
| .icon-primary { color: rgba(251, 191, 36, 0.9); }
|
| .icon-secondary { color: var(--text-secondary, #64748b); }
|
| .icon-success { color: #059669; }
|
| .icon-warning { color: #d97706; }
|
| .icon-error { color: #dc2626; }
|
| .icon-info { color: #3b82f6; }
|
|
|
|
|
|
|
| label {
|
| display: block;
|
| font-family: 'Cairo', 'Tajawal', sans-serif;
|
| font-size: 14px;
|
| font-weight: 600;
|
| color: var(--text-primary, #1e293b);
|
| margin-bottom: 8px;
|
| letter-spacing: 0.01em;
|
| }
|
|
|
| label .required {
|
| color: #dc2626;
|
| margin-right: 4px;
|
| }
|
|
|
| label .icon {
|
| margin-left: 6px;
|
| font-size: 16px;
|
| }
|
|
|
|
|
|
|
| input[type="checkbox"],
|
| input[type="radio"] {
|
| width: 20px;
|
| height: 20px;
|
| cursor: pointer;
|
| accent-color: rgba(251, 191, 36, 0.9);
|
| transition: all 0.2s ease;
|
| }
|
|
|
| input[type="checkbox"]:hover,
|
| input[type="radio"]:hover {
|
| transform: scale(1.1);
|
| }
|
|
|
| input[type="checkbox"]:focus,
|
| input[type="radio"]:focus {
|
| outline: 2px solid rgba(251, 191, 36, 0.5);
|
| outline-offset: 2px;
|
| }
|
|
|
|
|
|
|
| button {
|
| font-family: 'Cairo', 'Tajawal', sans-serif;
|
| font-weight: 600;
|
| letter-spacing: 0.01em;
|
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
| }
|
|
|
| button .icon {
|
| transition: all 0.3s ease;
|
| }
|
|
|
| button:hover .icon {
|
| transform: scale(1.15);
|
| }
|
|
|
| button:active {
|
| transform: scale(0.98);
|
| }
|
|
|
|
|
|
|
| @media (max-width: 768px) {
|
| input[type="text"],
|
| input[type="email"],
|
| input[type="password"],
|
| input[type="number"],
|
| input[type="tel"],
|
| input[type="url"],
|
| input[type="search"],
|
| input[type="date"],
|
| input[type="time"],
|
| input[type="datetime-local"],
|
| textarea,
|
| select {
|
| font-size: 16px;
|
| padding: 10px 14px;
|
| }
|
|
|
| textarea {
|
| min-height: 100px;
|
| }
|
| }
|
|
|
|
|
|
|
| [data-theme="dark"] input[type="text"],
|
| [data-theme="dark"] input[type="email"],
|
| [data-theme="dark"] input[type="password"],
|
| [data-theme="dark"] input[type="number"],
|
| [data-theme="dark"] input[type="tel"],
|
| [data-theme="dark"] input[type="url"],
|
| [data-theme="dark"] input[type="search"],
|
| [data-theme="dark"] input[type="date"],
|
| [data-theme="dark"] input[type="time"],
|
| [data-theme="dark"] input[type="datetime-local"],
|
| [data-theme="dark"] textarea,
|
| [data-theme="dark"] select {
|
| background-color: rgba(0, 0, 0, 0.3);
|
| border-color: rgba(255, 255, 255, 0.1);
|
| color: #f8fafc;
|
| }
|
|
|
| [data-theme="dark"] input::placeholder,
|
| [data-theme="dark"] textarea::placeholder {
|
| color: rgba(255, 255, 255, 0.4);
|
| }
|
|
|
|
|
|
|
| @media (prefers-reduced-motion: reduce) {
|
| input, textarea, select, button, .icon {
|
| transition-duration: 0.01ms !important;
|
| animation-duration: 0.01ms !important;
|
| }
|
| }
|
|
|
|
|
| @media (prefers-contrast: high) {
|
| input[type="text"],
|
| input[type="email"],
|
| input[type="password"],
|
| input[type="number"],
|
| input[type="tel"],
|
| input[type="url"],
|
| input[type="search"],
|
| input[type="date"],
|
| input[type="time"],
|
| input[type="datetime-local"],
|
| textarea,
|
| select {
|
| border-width: 3px;
|
| }
|
| }
|
|
|