diff --git a/css/rt-vcard.css b/css/rt-vcard.css new file mode 100644 index 0000000..3542762 --- /dev/null +++ b/css/rt-vcard.css @@ -0,0 +1,217 @@ +:root { + --primary-color: #00796b; + --secondary-color: #004d40; + --text-color: #333333; + --background-color: #e0f7fa; + --card-shadow: rgba(0, 0, 0, 0.1); + --transition-speed: 0.3s; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Roboto', sans-serif; + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + background: linear-gradient(135deg, var(--background-color) 0%, #ffffff 100%); + padding: 20px; +} + +.business-card { + width: 100%; + max-width: 800px; + background: #ffffff; + border-radius: 16px; + box-shadow: 0 8px 32px var(--card-shadow); + padding: 32px; + transition: transform var(--transition-speed) ease-in-out, + box-shadow var(--transition-speed) ease-in-out; +} + +.business-card:hover { + transform: translateY(-5px); + box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2); +} + +.card-content { + display: grid; + grid-template-columns: auto 1fr; + gap: 32px; +} + +.left-column { + display: flex; + flex-direction: column; + align-items: center; + gap: 24px; +} + +.profile-picture { + width: 150px; + height: 150px; + border-radius: 50%; + overflow: hidden; + border: 3px solid var(--primary-color); + transition: transform var(--transition-speed); +} + +.profile-picture:hover { + transform: scale(1.05); +} + +.profile-picture img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.qr-code { + width: 120px; + height: 120px; + background: #f5f5f5; + border-radius: 8px; + overflow: hidden; + border: 1px solid #eee; +} + +.qr-code img { + width: 100%; + height: 100%; + object-fit: contain; +} + +.details { + display: flex; + flex-direction: column; + gap: 16px; +} + +.name { + font-size: 2em; + font-weight: 700; + color: var(--primary-color); + letter-spacing: 0.5px; +} + +.title { + font-size: 1.2em; + color: var(--secondary-color); + font-weight: 500; +} + +.note { + font-size: 1em; + line-height: 1.6; + color: var(--text-color); + background: var(--background-color); + padding: 16px; + border-radius: 8px; + border-left: 4px solid var(--primary-color); +} + +.contact { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 12px; + margin-top: 8px; +} + +.contact-item { + display: flex; + align-items: center; + gap: 8px; + padding: 8px; + background: #f5f5f5; + border-radius: 6px; + transition: background-color var(--transition-speed); +} + +.contact-item:hover { + background: #e0e0e0; +} + +.contact-icon { + width: 20px; + height: 20px; + fill: var(--primary-color); +} + +.contact a { + color: var(--primary-color); + text-decoration: none; + transition: color var(--transition-speed); +} + +.contact a:hover { + color: var(--secondary-color); + text-decoration: underline; +} + +@media (max-width: 768px) { + .business-card { + padding: 24px; + } + + .card-content { + grid-template-columns: 1fr; + } + + .left-column { + flex-direction: row; + justify-content: center; + flex-wrap: wrap; + } + + .profile-picture { + width: 120px; + height: 120px; + } + + .qr-code { + width: 100px; + height: 100px; + } + + .name { + font-size: 1.6em; + } + + .contact { + grid-template-columns: 1fr; + } +} + +@media (max-width: 480px) { + .business-card { + padding: 16px; + } + + .profile-picture { + width: 100px; + height: 100px; + } + + .qr-code { + width: 80px; + height: 80px; + } + + .name { + font-size: 1.4em; + } + + .title { + font-size: 1.1em; + } + + .note { + font-size: 0.9em; + padding: 12px; + } +}