basic ui elements

This commit is contained in:
2026-01-15 23:52:09 +01:00
parent b56f667a3a
commit ebf80052f0
13 changed files with 2655 additions and 33 deletions

232
assets/screens/browser.rml Normal file
View File

@@ -0,0 +1,232 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Browser</title>
<style>
.browser-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.browser-toolbar {
display: flex;
align-items: center;
padding: 8px;
background-color: #1E1E1E;
gap: 8px;
}
.browser-nav-btn {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
color: #B3B3B3;
cursor: pointer;
border-radius: 20px;
}
.browser-nav-btn:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.browser-nav-btn.disabled {
color: #444444;
}
.browser-url-bar {
flex: 1;
display: flex;
align-items: center;
padding: 8px 16px;
background-color: #2D2D2D;
border-radius: 20px;
}
.browser-secure-icon {
font-size: 14px;
color: #4CAF50;
margin-right: 8px;
}
.browser-url {
flex: 1;
font-size: 14px;
color: #FFFFFF;
background: transparent;
border: none;
}
.browser-content {
flex: 1;
background-color: #FFFFFF;
overflow: auto;
}
.browser-page {
padding: 16px;
color: #000000;
}
.browser-page-title {
font-size: 24px;
font-weight: bold;
color: #1a0dab;
margin-bottom: 16px;
}
.browser-page-text {
font-size: 14px;
line-height: 1.6;
color: #333333;
margin-bottom: 16px;
}
.browser-page-link {
color: #1a0dab;
text-decoration: underline;
}
.browser-search-results {
padding: 16px;
}
.browser-search-item {
margin-bottom: 24px;
}
.browser-search-title {
font-size: 18px;
color: #1a0dab;
margin-bottom: 4px;
}
.browser-search-url {
font-size: 13px;
color: #006621;
margin-bottom: 4px;
}
.browser-search-desc {
font-size: 14px;
color: #545454;
line-height: 1.4;
}
.browser-bottom-bar {
display: flex;
align-items: center;
padding: 8px 16px;
background-color: #1E1E1E;
border-top: 1px solid #333333;
}
.browser-tab-btn {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding: 8px;
cursor: pointer;
color: #B3B3B3;
}
.browser-tab-btn:hover {
color: #FFFFFF;
}
.browser-tab-icon {
font-size: 20px;
margin-bottom: 4px;
}
.browser-tab-label {
font-size: 11px;
}
.browser-tabs-indicator {
padding: 4px 8px;
border: 1px solid #B3B3B3;
border-radius: 4px;
font-size: 12px;
color: #B3B3B3;
}
</style>
</head>
<body class="browser-screen">
<!-- Status Bar -->
<div class="status-bar">
<span class="status-bar-time">12:30</span>
<div class="status-bar-icons">
<span>*</span>
<span>+</span>
<span>|</span>
</div>
</div>
<!-- Browser Toolbar -->
<div class="browser-toolbar">
<div class="browser-nav-btn" onclick="navigateTo('home')">←</div>
<div class="browser-nav-btn disabled">→</div>
<div class="browser-url-bar">
<span class="browser-secure-icon">L</span>
<input class="browser-url" type="text" value="example.com"/>
</div>
<div class="browser-nav-btn">R</div>
<div class="browser-nav-btn">:</div>
</div>
<!-- Browser Content -->
<div class="browser-content">
<div class="browser-page">
<div class="browser-page-title">Example Domain</div>
<div class="browser-page-text">
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.
</div>
<div class="browser-page-text">
<span class="browser-page-link">More information...</span>
</div>
<div style="margin-top: 32px; padding-top: 16px; border-top: 1px solid #e0e0e0;">
<div class="browser-page-title" style="font-size: 18px;">Related Links</div>
<div class="browser-search-item">
<div class="browser-search-title">IANA — IANA-managed Reserved Domains</div>
<div class="browser-search-url">www.iana.org > domains > reserved</div>
<div class="browser-search-desc">Certain domains are set aside and unavailable for registration. Learn about reserved top-level domains.</div>
</div>
<div class="browser-search-item">
<div class="browser-search-title">RFC 2606 - Reserved Top Level DNS Names</div>
<div class="browser-search-url">tools.ietf.org > html > rfc2606</div>
<div class="browser-search-desc">This document describes some domain names that are reserved for documentation purposes.</div>
</div>
</div>
</div>
</div>
<!-- Bottom Bar -->
<div class="browser-bottom-bar">
<div class="browser-tab-btn" onclick="navigateTo('home')">
<span class="browser-tab-icon">H</span>
<span class="browser-tab-label">Home</span>
</div>
<div class="browser-tab-btn">
<span class="browser-tabs-indicator">3</span>
<span class="browser-tab-label">Tabs</span>
</div>
<div class="browser-tab-btn">
<span class="browser-tab-icon">+</span>
<span class="browser-tab-label">New Tab</span>
</div>
<div class="browser-tab-btn">
<span class="browser-tab-icon">:</span>
<span class="browser-tab-label">Menu</span>
</div>
</div>
</body>
</rml>

197
assets/screens/contacts.rml Normal file
View File

@@ -0,0 +1,197 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Contacts</title>
<style>
.contacts-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.contacts-list {
flex: 1;
overflow: auto;
padding-bottom: 56px;
}
.contact-letter {
padding: 8px 16px;
font-size: 14px;
font-weight: 500;
color: #BB86FC;
background-color: #1E1E1E;
position: sticky;
top: 0;
}
.contact-item {
display: flex;
align-items: center;
padding: 12px 16px;
cursor: pointer;
}
.contact-item:hover {
background-color: rgba(255, 255, 255, 0.05);
}
.contact-avatar {
width: 40px;
height: 40px;
border-radius: 20px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
color: #000000;
}
.contact-info {
flex: 1;
}
.contact-name {
font-size: 16px;
color: #FFFFFF;
}
.contact-phone {
font-size: 13px;
color: #B3B3B3;
margin-top: 2px;
}
</style>
</head>
<body class="contacts-screen">
<!-- App Bar -->
<div class="app-bar">
<div class="btn-icon" onclick="navigateTo('home')">←</div>
<span class="app-bar-title">Contacts</span>
<div class="btn-icon">+</div>
</div>
<!-- Search Bar -->
<div class="search-bar">
<span class="search-icon">Q</span>
<input class="search-input" type="text" placeholder="Search contacts"/>
</div>
<!-- Contacts List -->
<div class="contacts-list">
<!-- A -->
<div class="contact-letter">A</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #E91E63;">A</div>
<div class="contact-info">
<div class="contact-name">Alice Johnson</div>
<div class="contact-phone">+1 (555) 123-4567</div>
</div>
</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #9C27B0;">A</div>
<div class="contact-info">
<div class="contact-name">Andrew Smith</div>
<div class="contact-phone">+1 (555) 234-5678</div>
</div>
</div>
<!-- B -->
<div class="contact-letter">B</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #2196F3;">B</div>
<div class="contact-info">
<div class="contact-name">Bob Williams</div>
<div class="contact-phone">+1 (555) 345-6789</div>
</div>
</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #00BCD4;">B</div>
<div class="contact-info">
<div class="contact-name">Brian Davis</div>
<div class="contact-phone">+1 (555) 456-7890</div>
</div>
</div>
<!-- C -->
<div class="contact-letter">C</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #4CAF50;">C</div>
<div class="contact-info">
<div class="contact-name">Carol Martinez</div>
<div class="contact-phone">+1 (555) 567-8901</div>
</div>
</div>
<!-- D -->
<div class="contact-letter">D</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #FF9800;">D</div>
<div class="contact-info">
<div class="contact-name">David Lee</div>
<div class="contact-phone">+1 (555) 678-9012</div>
</div>
</div>
<!-- J -->
<div class="contact-letter">J</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #F44336;">J</div>
<div class="contact-info">
<div class="contact-name">John Wilson</div>
<div class="contact-phone">+1 (555) 789-0123</div>
</div>
</div>
<!-- M -->
<div class="contact-letter">M</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #673AB7;">M</div>
<div class="contact-info">
<div class="contact-name">Mom</div>
<div class="contact-phone">+1 (555) 890-1234</div>
</div>
</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #3F51B5;">M</div>
<div class="contact-info">
<div class="contact-name">Mike Brown</div>
<div class="contact-phone">+1 (555) 901-2345</div>
</div>
</div>
<!-- S -->
<div class="contact-letter">S</div>
<div class="contact-item">
<div class="contact-avatar" style="background-color: #009688;">S</div>
<div class="contact-info">
<div class="contact-name">Sarah Taylor</div>
<div class="contact-phone">+1 (555) 012-3456</div>
</div>
</div>
</div>
<!-- FAB -->
<div class="btn-fab">+</div>
<!-- Bottom Navigation -->
<div class="bottom-nav">
<div class="bottom-nav-item" onclick="navigateTo('dialer')">
<span class="bottom-nav-icon">*</span>
<span class="bottom-nav-label">Keypad</span>
</div>
<div class="bottom-nav-item">
<span class="bottom-nav-icon">O</span>
<span class="bottom-nav-label">Recent</span>
</div>
<div class="bottom-nav-item active">
<span class="bottom-nav-icon">@</span>
<span class="bottom-nav-label">Contacts</span>
</div>
</div>
</body>
</rml>

196
assets/screens/dialer.rml Normal file
View File

@@ -0,0 +1,196 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<script src="../scripts/phone.lua"></script>
<title>Phone</title>
<style>
.dialer-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.dialer-tabs {
display: flex;
background-color: #1E1E1E;
border-bottom: 1px solid #333333;
}
.dialer-tab {
flex: 1;
padding: 16px;
text-align: center;
font-size: 14px;
color: #B3B3B3;
cursor: pointer;
}
.dialer-tab.active {
color: #BB86FC;
border-bottom: 2px solid #BB86FC;
}
.dialer-content {
flex: 1;
display: flex;
flex-direction: column;
}
.recent-calls {
flex: 1;
overflow: auto;
}
.call-item {
display: flex;
align-items: center;
padding: 12px 16px;
}
.call-item:hover {
background-color: rgba(255, 255, 255, 0.05);
}
.call-avatar {
width: 40px;
height: 40px;
border-radius: 20px;
background-color: #BB86FC;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
color: #000000;
}
.call-info {
flex: 1;
}
.call-name {
font-size: 16px;
color: #FFFFFF;
}
.call-type {
font-size: 13px;
color: #B3B3B3;
margin-top: 2px;
}
.call-type.missed {
color: #CF6679;
}
.call-time {
font-size: 13px;
color: #666666;
}
.call-action {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
color: #4CAF50;
cursor: pointer;
}
</style>
</head>
<body class="dialer-screen">
<!-- App Bar -->
<div class="app-bar">
<div class="btn-icon" onclick="navigateTo('home')">←</div>
<span class="app-bar-title">Phone</span>
</div>
<!-- Tabs -->
<div class="dialer-tabs">
<div class="dialer-tab" id="tab-keypad">Keypad</div>
<div class="dialer-tab active" id="tab-recent">Recent</div>
<div class="dialer-tab" id="tab-contacts">Contacts</div>
</div>
<!-- Dial Display -->
<div class="dial-display" id="dial-display"></div>
<!-- Dial Pad -->
<div class="dial-pad">
<div class="dial-key" onclick="dialPress('1')">
<span class="dial-key-number">1</span>
<span class="dial-key-letters"></span>
</div>
<div class="dial-key" onclick="dialPress('2')">
<span class="dial-key-number">2</span>
<span class="dial-key-letters">ABC</span>
</div>
<div class="dial-key" onclick="dialPress('3')">
<span class="dial-key-number">3</span>
<span class="dial-key-letters">DEF</span>
</div>
<div class="dial-key" onclick="dialPress('4')">
<span class="dial-key-number">4</span>
<span class="dial-key-letters">GHI</span>
</div>
<div class="dial-key" onclick="dialPress('5')">
<span class="dial-key-number">5</span>
<span class="dial-key-letters">JKL</span>
</div>
<div class="dial-key" onclick="dialPress('6')">
<span class="dial-key-number">6</span>
<span class="dial-key-letters">MNO</span>
</div>
<div class="dial-key" onclick="dialPress('7')">
<span class="dial-key-number">7</span>
<span class="dial-key-letters">PQRS</span>
</div>
<div class="dial-key" onclick="dialPress('8')">
<span class="dial-key-number">8</span>
<span class="dial-key-letters">TUV</span>
</div>
<div class="dial-key" onclick="dialPress('9')">
<span class="dial-key-number">9</span>
<span class="dial-key-letters">WXYZ</span>
</div>
<div class="dial-key" onclick="dialPress('*')">
<span class="dial-key-number">*</span>
<span class="dial-key-letters"></span>
</div>
<div class="dial-key" onclick="dialPress('0')">
<span class="dial-key-number">0</span>
<span class="dial-key-letters">+</span>
</div>
<div class="dial-key" onclick="dialPress('#')">
<span class="dial-key-number">#</span>
<span class="dial-key-letters"></span>
</div>
</div>
<!-- Call Button -->
<div class="dial-actions">
<div class="dial-call-btn" onclick="makeCall()">C</div>
</div>
<!-- Bottom Navigation -->
<div class="bottom-nav">
<div class="bottom-nav-item active">
<span class="bottom-nav-icon">*</span>
<span class="bottom-nav-label">Keypad</span>
</div>
<div class="bottom-nav-item">
<span class="bottom-nav-icon">O</span>
<span class="bottom-nav-label">Recent</span>
</div>
<div class="bottom-nav-item" onclick="navigateTo('contacts')">
<span class="bottom-nav-icon">@</span>
<span class="bottom-nav-label">Contacts</span>
</div>
</div>
</body>
</rml>

126
assets/screens/home.rml Normal file
View File

@@ -0,0 +1,126 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Home</title>
<style>
.home-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.home-content {
flex: 1;
padding-bottom: 80px;
}
.wallpaper-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(180deg, rgba(18,18,18,0.3) 0%, rgba(18,18,18,0.8) 100%);
}
</style>
</head>
<body class="home-screen">
<!-- Status Bar -->
<div class="status-bar">
<span class="status-bar-time">12:30</span>
<div class="status-bar-icons">
<span>*</span>
<span>+</span>
<span>|</span>
</div>
</div>
<!-- App Grid -->
<div class="home-content">
<div class="app-grid">
<!-- Row 1 -->
<div class="app-icon" onclick="navigateTo('dialer')">
<div class="app-icon-image" style="background-color: #4CAF50;">P</div>
<span class="app-icon-label">Phone</span>
</div>
<div class="app-icon" onclick="navigateTo('messages')">
<div class="app-icon-image" style="background-color: #2196F3;">M</div>
<span class="app-icon-label">Messages</span>
</div>
<div class="app-icon" onclick="navigateTo('contacts')">
<div class="app-icon-image" style="background-color: #FF9800;">C</div>
<span class="app-icon-label">Contacts</span>
</div>
<div class="app-icon" onclick="navigateTo('browser')">
<div class="app-icon-image" style="background-color: #F44336;">B</div>
<span class="app-icon-label">Browser</span>
</div>
<!-- Row 2 -->
<div class="app-icon">
<div class="app-icon-image" style="background-color: #9C27B0;">G</div>
<span class="app-icon-label">Gallery</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #00BCD4;">C</div>
<span class="app-icon-label">Camera</span>
</div>
<div class="app-icon" onclick="navigateTo('settings')">
<div class="app-icon-image" style="background-color: #607D8B;">S</div>
<span class="app-icon-label">Settings</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #E91E63;">M</div>
<span class="app-icon-label">Music</span>
</div>
<!-- Row 3 -->
<div class="app-icon">
<div class="app-icon-image" style="background-color: #3F51B5;">C</div>
<span class="app-icon-label">Calendar</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #009688;">C</div>
<span class="app-icon-label">Clock</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #795548;">N</div>
<span class="app-icon-label">Notes</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #FF5722;">M</div>
<span class="app-icon-label">Maps</span>
</div>
<!-- Row 4 -->
<div class="app-icon">
<div class="app-icon-image" style="background-color: #8BC34A;">S</div>
<span class="app-icon-label">Store</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #CDDC39;">F</div>
<span class="app-icon-label">Files</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #FFC107;">C</div>
<span class="app-icon-label">Calculator</span>
</div>
<div class="app-icon">
<div class="app-icon-image" style="background-color: #673AB7;">W</div>
<span class="app-icon-label">Weather</span>
</div>
</div>
</div>
<!-- Dock -->
<div class="dock">
<div class="dock-item" style="background-color: #4CAF50;" onclick="navigateTo('dialer')">P</div>
<div class="dock-item" style="background-color: #2196F3;" onclick="navigateTo('messages')">M</div>
<div class="dock-item" style="background-color: #FF9800;" onclick="navigateTo('contacts')">C</div>
<div class="dock-item" style="background-color: #F44336;" onclick="navigateTo('browser')">B</div>
</div>
</body>
</rml>

174
assets/screens/lock.rml Normal file
View File

@@ -0,0 +1,174 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Lock Screen</title>
<style>
.lock-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.lock-content {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.lock-time {
font-size: 72px;
font-weight: 200;
color: #FFFFFF;
letter-spacing: 2px;
}
.lock-date {
font-size: 18px;
color: #B3B3B3;
margin-top: 8px;
}
.lock-swipe {
position: absolute;
bottom: 100px;
left: 0;
right: 0;
text-align: center;
}
.lock-swipe-text {
font-size: 14px;
color: #666666;
}
.lock-swipe-icon {
font-size: 24px;
color: #666666;
margin-top: 8px;
}
.lock-shortcuts {
position: absolute;
bottom: 32px;
left: 0;
right: 0;
display: flex;
justify-content: space-between;
padding: 0 32px;
}
.lock-shortcut {
width: 48px;
height: 48px;
border-radius: 24px;
background-color: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
color: #FFFFFF;
cursor: pointer;
}
.lock-shortcut:hover {
background-color: rgba(255, 255, 255, 0.2);
}
.lock-notifications {
margin-top: 48px;
width: 100%;
padding: 0 24px;
}
.lock-notification {
background-color: rgba(255, 255, 255, 0.1);
border-radius: 16px;
padding: 16px;
margin-bottom: 8px;
display: flex;
align-items: center;
}
.lock-notification-icon {
width: 32px;
height: 32px;
border-radius: 8px;
background-color: #2196F3;
margin-right: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: #FFFFFF;
}
.lock-notification-content {
flex: 1;
}
.lock-notification-title {
font-size: 14px;
font-weight: 500;
color: #FFFFFF;
}
.lock-notification-text {
font-size: 13px;
color: #B3B3B3;
margin-top: 2px;
}
</style>
</head>
<body class="lock-screen" onclick="navigateTo('home')">
<!-- Status Bar -->
<div class="status-bar">
<span class="status-bar-time">12:30</span>
<div class="status-bar-icons">
<span>*</span>
<span>+</span>
<span>|</span>
</div>
</div>
<!-- Main Content -->
<div class="lock-content">
<div class="lock-time">12:30</div>
<div class="lock-date">Wednesday, January 15</div>
<!-- Notifications -->
<div class="lock-notifications">
<div class="lock-notification">
<div class="lock-notification-icon">M</div>
<div class="lock-notification-content">
<div class="lock-notification-title">Messages</div>
<div class="lock-notification-text">John: Hey, are you coming to...</div>
</div>
</div>
<div class="lock-notification">
<div class="lock-notification-icon" style="background-color: #4CAF50;">P</div>
<div class="lock-notification-content">
<div class="lock-notification-title">Missed Call</div>
<div class="lock-notification-text">Mom - 10 minutes ago</div>
</div>
</div>
</div>
</div>
<!-- Swipe to unlock -->
<div class="lock-swipe">
<div class="lock-swipe-icon">^</div>
<div class="lock-swipe-text">Swipe up to unlock</div>
</div>
<!-- Shortcuts -->
<div class="lock-shortcuts">
<div class="lock-shortcut" onclick="navigateTo('dialer')">P</div>
<div class="lock-shortcut">C</div>
</div>
</body>
</rml>

222
assets/screens/messages.rml Normal file
View File

@@ -0,0 +1,222 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Messages</title>
<style>
.messages-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.conversations-list {
flex: 1;
overflow: auto;
}
.conversation-item {
display: flex;
align-items: center;
padding: 12px 16px;
cursor: pointer;
}
.conversation-item:hover {
background-color: rgba(255, 255, 255, 0.05);
}
.conversation-avatar {
width: 48px;
height: 48px;
border-radius: 24px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
color: #000000;
}
.conversation-content {
flex: 1;
min-width: 0;
}
.conversation-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.conversation-name {
font-size: 16px;
font-weight: 500;
color: #FFFFFF;
}
.conversation-time {
font-size: 12px;
color: #666666;
}
.conversation-preview {
font-size: 14px;
color: #B3B3B3;
margin-top: 4px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.conversation-unread {
width: 20px;
height: 20px;
border-radius: 10px;
background-color: #BB86FC;
color: #000000;
font-size: 11px;
font-weight: 500;
display: flex;
align-items: center;
justify-content: center;
margin-left: 8px;
}
/* Chat View Styles */
.chat-header {
display: flex;
align-items: center;
padding: 8px 0;
}
.chat-header-avatar {
width: 36px;
height: 36px;
border-radius: 18px;
background-color: #BB86FC;
margin-right: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: #000000;
}
.chat-header-info {
flex: 1;
}
.chat-header-name {
font-size: 16px;
font-weight: 500;
color: #FFFFFF;
}
.chat-header-status {
font-size: 12px;
color: #B3B3B3;
}
.chat-messages {
flex: 1;
overflow: auto;
padding: 16px;
}
</style>
</head>
<body class="messages-screen">
<!-- App Bar -->
<div class="app-bar">
<div class="btn-icon" onclick="navigateTo('home')">←</div>
<span class="app-bar-title">Messages</span>
<div class="btn-icon">Q</div>
</div>
<!-- Conversations List -->
<div class="conversations-list">
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #4CAF50;">J</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">John Wilson</span>
<span class="conversation-time">2:30 PM</span>
</div>
<div class="conversation-preview">Hey, are you coming to the party tonight?</div>
</div>
<div class="conversation-unread">2</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #673AB7;">M</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">Mom</span>
<span class="conversation-time">1:15 PM</span>
</div>
<div class="conversation-preview">Don't forget to call your grandmother!</div>
</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #E91E63;">A</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">Alice Johnson</span>
<span class="conversation-time">Yesterday</span>
</div>
<div class="conversation-preview">Thanks for the help with the project!</div>
</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #2196F3;">B</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">Bob Williams</span>
<span class="conversation-time">Yesterday</span>
</div>
<div class="conversation-preview">Did you see the game last night?</div>
</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #FF9800;">W</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">Work Group</span>
<span class="conversation-time">Mon</span>
</div>
<div class="conversation-preview">Sarah: Meeting moved to 3pm</div>
</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #009688;">S</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">Sarah Taylor</span>
<span class="conversation-time">Sun</span>
</div>
<div class="conversation-preview">See you at the coffee shop!</div>
</div>
</div>
<div class="conversation-item">
<div class="conversation-avatar" style="background-color: #F44336;">D</div>
<div class="conversation-content">
<div class="conversation-header">
<span class="conversation-name">David Lee</span>
<span class="conversation-time">Sat</span>
</div>
<div class="conversation-preview">Great talking to you!</div>
</div>
</div>
</div>
<!-- FAB -->
<div class="btn-fab">+</div>
</body>
</rml>

292
assets/screens/settings.rml Normal file
View File

@@ -0,0 +1,292 @@
<rml>
<head>
<link type="text/rcss" href="../ui/theme.rcss"/>
<link type="text/rcss" href="../ui/components.rcss"/>
<title>Settings</title>
<style>
.settings-screen {
width: 100%;
height: 100%;
background-color: #121212;
display: flex;
flex-direction: column;
}
.settings-list {
flex: 1;
overflow: auto;
}
.settings-section {
margin-bottom: 8px;
}
.settings-header {
padding: 16px 16px 8px 16px;
font-size: 14px;
font-weight: 500;
color: #BB86FC;
}
.settings-item {
display: flex;
align-items: center;
padding: 16px;
cursor: pointer;
background-color: #1E1E1E;
}
.settings-item:hover {
background-color: #252525;
}
.settings-item + .settings-item {
border-top: 1px solid #333333;
}
.settings-icon {
width: 40px;
height: 40px;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
color: #B3B3B3;
}
.settings-content {
flex: 1;
}
.settings-title {
font-size: 16px;
color: #FFFFFF;
}
.settings-subtitle {
font-size: 13px;
color: #B3B3B3;
margin-top: 2px;
}
.settings-action {
font-size: 20px;
color: #666666;
}
.settings-toggle {
width: 44px;
height: 24px;
border-radius: 12px;
background-color: #666666;
position: relative;
}
.settings-toggle.active {
background-color: rgba(187, 134, 252, 0.5);
}
.settings-toggle-thumb {
width: 20px;
height: 20px;
border-radius: 10px;
background-color: #B3B3B3;
position: absolute;
top: 2px;
left: 2px;
}
.settings-toggle.active .settings-toggle-thumb {
background-color: #BB86FC;
left: 22px;
}
.settings-value {
font-size: 14px;
color: #B3B3B3;
}
.user-card {
display: flex;
align-items: center;
padding: 20px 16px;
background-color: #1E1E1E;
margin-bottom: 8px;
}
.user-avatar {
width: 64px;
height: 64px;
border-radius: 32px;
background-color: #BB86FC;
margin-right: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
color: #000000;
}
.user-info {
flex: 1;
}
.user-name {
font-size: 20px;
font-weight: 500;
color: #FFFFFF;
}
.user-email {
font-size: 14px;
color: #B3B3B3;
margin-top: 4px;
}
</style>
</head>
<body class="settings-screen">
<!-- App Bar -->
<div class="app-bar">
<div class="btn-icon" onclick="navigateTo('home')">←</div>
<span class="app-bar-title">Settings</span>
<div class="btn-icon">Q</div>
</div>
<!-- Settings List -->
<div class="settings-list">
<!-- User Card -->
<div class="user-card">
<div class="user-avatar">U</div>
<div class="user-info">
<div class="user-name">User Name</div>
<div class="user-email">user@example.com</div>
</div>
<span class="settings-action">></span>
</div>
<!-- Network Section -->
<div class="settings-section">
<div class="settings-header">Network</div>
<div class="settings-item">
<div class="settings-icon">W</div>
<div class="settings-content">
<div class="settings-title">Wi-Fi</div>
<div class="settings-subtitle">Connected to Home_Network</div>
</div>
<div class="settings-toggle active">
<div class="settings-toggle-thumb"></div>
</div>
</div>
<div class="settings-item">
<div class="settings-icon">B</div>
<div class="settings-content">
<div class="settings-title">Bluetooth</div>
<div class="settings-subtitle">Off</div>
</div>
<div class="settings-toggle">
<div class="settings-toggle-thumb"></div>
</div>
</div>
<div class="settings-item">
<div class="settings-icon">A</div>
<div class="settings-content">
<div class="settings-title">Airplane Mode</div>
</div>
<div class="settings-toggle">
<div class="settings-toggle-thumb"></div>
</div>
</div>
</div>
<!-- Device Section -->
<div class="settings-section">
<div class="settings-header">Device</div>
<div class="settings-item">
<div class="settings-icon">D</div>
<div class="settings-content">
<div class="settings-title">Display</div>
<div class="settings-subtitle">Brightness, wallpaper, sleep</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">S</div>
<div class="settings-content">
<div class="settings-title">Sound</div>
<div class="settings-subtitle">Volume, ringtone, vibration</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">N</div>
<div class="settings-content">
<div class="settings-title">Notifications</div>
<div class="settings-subtitle">App notifications, Do not disturb</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">B</div>
<div class="settings-content">
<div class="settings-title">Battery</div>
<div class="settings-subtitle">85% - About 12h remaining</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">S</div>
<div class="settings-content">
<div class="settings-title">Storage</div>
<div class="settings-subtitle">45.2 GB used of 128 GB</div>
</div>
<span class="settings-action">></span>
</div>
</div>
<!-- Privacy Section -->
<div class="settings-section">
<div class="settings-header">Privacy &amp; Security</div>
<div class="settings-item">
<div class="settings-icon">L</div>
<div class="settings-content">
<div class="settings-title">Lock Screen</div>
<div class="settings-subtitle">PIN, pattern, fingerprint</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">P</div>
<div class="settings-content">
<div class="settings-title">Privacy</div>
<div class="settings-subtitle">Permissions, account activity</div>
</div>
<span class="settings-action">></span>
</div>
<div class="settings-item">
<div class="settings-icon">L</div>
<div class="settings-content">
<div class="settings-title">Location</div>
<div class="settings-subtitle">On - High accuracy</div>
</div>
<div class="settings-toggle active">
<div class="settings-toggle-thumb"></div>
</div>
</div>
</div>
<!-- About Section -->
<div class="settings-section">
<div class="settings-header">About</div>
<div class="settings-item">
<div class="settings-icon">I</div>
<div class="settings-content">
<div class="settings-title">About Phone</div>
<div class="settings-subtitle">Model, software version</div>
</div>
<span class="settings-action">></span>
</div>
</div>
</div>
</body>
</rml>