diff --git a/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.css b/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.css new file mode 100644 index 0000000..e99f514 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.css @@ -0,0 +1,24 @@ +.container { + text-align: center; + position: absolute; + left: 0; + right: 0; + top: 50%; + transform: translateY(-50%); +} + +.container strong { + font-size: 20px; + line-height: 26px; +} + +.container p { + font-size: 16px; + line-height: 22px; + color: #8c8c8c; + margin: 0; +} + +.container a { + text-decoration: none; +} \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.tsx b/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.tsx new file mode 100644 index 0000000..f003f7f --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/components/ExploreContainer.tsx @@ -0,0 +1,25 @@ +import './ExploreContainer.css'; + +interface ContainerProps { + name: string; +} + +const ExploreContainer: React.FC = ({ name }) => { + return ( +
+ {name} +

+ Explore{' '} + + UI Components + +

+
+ ); +}; + +export default ExploreContainer; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/components/Post.tsx b/03_source/mobile/src/pages/DemoFacebookClone/components/Post.tsx new file mode 100644 index 0000000..275e4ad --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/components/Post.tsx @@ -0,0 +1,96 @@ +import { + IonAvatar, + IonButton, + IonCol, + IonIcon, + IonImg, + IonItem, + IonLabel, + IonRow, + IonText, +} from '@ionic/react'; +import { + arrowRedoOutline, + chatboxOutline, + ellipsisHorizontal, + globe, + heart, + thumbsUp, + thumbsUpOutline, +} from 'ionicons/icons'; +import '../pages/Tab2.css'; +import React from 'react'; + +const Post = (props): React.JSX.Element => { + const { post } = props; + + return ( + + +
+ + + + + + +

{post.name}

+

+ {post.sponsored ? 'Sponsored' : post.time} +    + +

+
+ + +
+ + +

{post.message}

+
+ + {post.image && } + + {post.sponsored && ( +
+ +

ionicframework.com

+

Start building apps today!

+
+ + Learn more +
+ )} + +
+
+ + +
+ + {post.sponsored &&

{post.views} Views

} +
+ +
+ + + Like + + + + + Comment + + + + + Share + +
+
+
+
+ ); +}; + +export default Post; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/components/Tabs.tsx b/03_source/mobile/src/pages/DemoFacebookClone/components/Tabs.tsx new file mode 100644 index 0000000..8a1c7d2 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/components/Tabs.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { IonIcon, IonLabel, IonTabBar, IonTabButton, IonTabs, IonRouterOutlet } from '@ionic/react'; +import { Redirect, Route } from 'react-router-dom'; +import Tab1 from '../pages/Tab1'; +import Tab2 from '../pages/Tab2'; +import Tab3 from '../pages/Tab3'; +import { chatboxOutline, cogOutline, personOutline } from 'ionicons/icons'; + +const Tabs = (props): React.JSX.Element => { + return ( + + + } /> + } /> + } /> + + + + + + + + + + + + + + + ); +}; + +export default Tabs; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/index.tsx b/03_source/mobile/src/pages/DemoFacebookClone/index.tsx index 9ff24b1..545fc4e 100644 --- a/03_source/mobile/src/pages/DemoFacebookClone/index.tsx +++ b/03_source/mobile/src/pages/DemoFacebookClone/index.tsx @@ -3,37 +3,24 @@ import { IonIcon, IonLabel, IonRouterOutlet, IonTabBar, IonTabButton, IonTabs } import { cloudOutline, searchOutline } from 'ionicons/icons'; import { Route, Redirect } from 'react-router'; -import Tab1 from './AppPages/Tab1'; -import Tab2 from './AppPages/Tab2'; +// import Tab1 from './AppPages/Tab1'; +// import Tab2 from './AppPages/Tab2'; + +import Tab1 from './pages/Tab1'; +import Tab2 from './pages/Tab2'; +import Tab3 from './pages/Tab3'; +import Tabs from './components/Tabs'; import './style.scss'; function DemoFacebookClone() { return ( - - - - - - - - + + } /> + } /> - - - - {/* */} - - - - Dashboard - - - - Search - - - + + ); } diff --git a/03_source/mobile/src/pages/DemoFacebookClone/main/messages.js b/03_source/mobile/src/pages/DemoFacebookClone/main/messages.js new file mode 100644 index 0000000..0d37b93 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/main/messages.js @@ -0,0 +1,105 @@ +export const messages = [ + { + name: 'Ionic Framework', + avatar: 'https://pbs.twimg.com/profile_images/1148952014036054016/xxv7lLvp_400x400.jpg', + message: '', + online: false, + last_message_sent: 3, + new_message_count: 2, + }, + { + name: 'Capacitor JS', + avatar: 'https://pbs.twimg.com/profile_images/1268235262641004544/OLW1xl7t_400x400.png', + message: '', + online: true, + last_message_sent: 9, + new_message_count: 0, + }, + { + name: 'Max Lynch', + avatar: 'https://pbs.twimg.com/profile_images/1318970727173885953/bln98FNj_400x400.jpg', + message: '', + online: true, + last_message_sent: 15, + new_message_count: 0, + }, + { + name: 'Ben Sperry', + avatar: 'https://pbs.twimg.com/profile_images/1328390491126308864/jHHgl5Dm_400x400.jpg', + message: '', + online: false, + last_message_sent: 27, + new_message_count: 0, + }, + { + name: 'Matt Netkow', + avatar: 'https://pbs.twimg.com/profile_images/1323383930150621187/GKc0nVzi_400x400.jpg', + message: '', + online: false, + last_message_sent: 31, + new_message_count: 1, + }, + { + name: 'Liam DeBeasi', + avatar: 'https://pbs.twimg.com/profile_images/1105953692669366273/ZNK4lRAJ_400x400.jpg', + message: '', + online: true, + last_message_sent: 41, + new_message_count: 0, + }, + { + name: 'Mike Hartington', + avatar: 'https://pbs.twimg.com/profile_images/1084993841898446849/DJ8XtR6L_400x400.jpg', + message: '', + online: false, + last_message_sent: 47, + new_message_count: 0, + }, + { + name: 'Adam Bradley', + avatar: 'https://pbs.twimg.com/profile_images/909075942320025600/hfYqicUk_400x400.jpg', + message: '', + online: true, + last_message_sent: 51, + new_message_count: 0, + }, + { + name: 'Brody Kidd', + avatar: 'https://pbs.twimg.com/profile_images/477539679567228928/JObyaUW__400x400.jpeg', + message: '', + online: true, + last_message_sent: 53, + new_message_count: 0, + }, +]; + +export const posts = [ + { + name: 'Max Lynch', + sponsored: false, + time: '12 m', + avatar: 'https://pbs.twimg.com/profile_images/1318970727173885953/bln98FNj_400x400.jpg', + message: 'Join a global community of web native developers!', + views: '', + online: true, + }, + { + name: 'Ben Sperry', + sponsored: false, + image: 'https://ionicons.com/assets/img/meta/ionicons-og.png', + time: '1 h', + avatar: 'https://pbs.twimg.com/profile_images/1328390491126308864/jHHgl5Dm_400x400.jpg', + message: 'Check out all the cool IonIcons used on this IonicBook app!', + views: '', + online: false, + }, + { + name: 'Matt Netkow', + sponsored: false, + time: '2 h', + avatar: 'https://pbs.twimg.com/profile_images/1323383930150621187/GKc0nVzi_400x400.jpg', + message: 'I help web developers build cross-platform Web Native apps.', + views: '', + online: false, + }, +]; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/MessageItem.tsx b/03_source/mobile/src/pages/DemoFacebookClone/pages/MessageItem.tsx new file mode 100644 index 0000000..4c4d3b3 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/pages/MessageItem.tsx @@ -0,0 +1,27 @@ +import { IonAvatar, IonBadge, IonImg, IonItem, IonLabel } from '@ionic/react'; +import React from 'react'; + +const MessageItem = (props): React.JSX.Element => { + return ( + + + + + {props.message.online &&
} + + +

{props.message.name}

+

This is a test message for a messenger item

+
+ +
+

{props.message.last_message_sent} min

+ {props.message.new_message_count > 0 && ( + {props.message.new_message_count} + )} +
+
+ ); +}; + +export default MessageItem; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab1.css b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab1.css new file mode 100644 index 0000000..e69de29 diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab1.tsx b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab1.tsx new file mode 100644 index 0000000..2ccdb20 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab1.tsx @@ -0,0 +1,73 @@ +import { + IonAvatar, + IonBackButton, + IonBadge, + IonButton, + IonButtons, + IonContent, + IonFab, + IonFabButton, + IonHeader, + IonIcon, + IonImg, + IonItem, + IonLabel, + IonList, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import { addOutline, searchOutline } from 'ionicons/icons'; +import ExploreContainer from '../components/ExploreContainer'; +import { messages } from '../main/messages'; +import MessageItem from './MessageItem'; +import './Tab1.css'; + +const Tab1 = () => { + return ( + + + + Messages + + + + + + @93alan + + + + + + + + + + + + + Messages + + + + + {messages.map((message, index) => { + return ; + })} + + + + + + + + + + ); +}; + +export default Tab1; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.css b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.css new file mode 100644 index 0000000..6cb99f6 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.css @@ -0,0 +1,373 @@ +.timeline-toolbar { + + display: flex; + flex-direction: row !important; +} + +.toolbar-title { + + font-size: 1.8rem; + font-weight: 700; + margin-left: 0.5rem; +} + +.toolbar-icons { + + margin-right: 0.5rem; + background-color: white; +} + +.toolbar-icons ion-icon { + + color: black; + background-color:rgb(235, 235, 235); + border-radius: 500px; + font-size: 1.5rem; + margin-left: 0.5rem; + padding: 0.3rem; +} + +.second-toolbar { + + border-bottom: 0.1px solid rgb(144, 144, 144); + padding-top: 0.75rem; + background-color: white; + position: fixed; + width: 100%; + z-index: 9999999; +} + +.second-toolbar ion-col ion-icon { + + font-size: 1.75rem; + color: rgb(138, 138, 138); +} + +.second-toolbar ion-col ion-icon.selected { + + /* border-bottom: 5px solid var(--ion-color-primary); */ +} + +.selected-icon { + + border-bottom: 1.5px solid var(--ion-color-primary); +} + +.top-input-container { + + border-bottom: 0.1px solid rgb(200, 200, 200); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + background-color: white; + margin-top: 3.5rem; +} + +.top-input { + + border: 1px solid rgb(149, 149, 149); + border-radius: 25px; + padding-left: 1rem !important; + height: 2.2rem; +} + +.below-input-label-container { + + border-bottom: 1px solid rgb(185, 185, 185); + background-color: white; +} + +.below-input-label { + + margin-top: 0.8rem; + margin-bottom: 0.8rem; +} + +.below-input-label:not(:last-child) { + + border-right: 1px solid rgb(167, 167, 167); +} + +.below-input-label ion-text { + + color: rgb(114, 114, 114); + font-size: 0.8rem; + font-weight: 700 !important; + margin-left: 1.7rem; +} + +.below-input-label ion-icon { + + font-size: 1.2rem; + margin-right: 0.5rem; + position: absolute; +} + +.timeline-bg { + + --background:rgb(218, 218, 218) !important; +} + +.rooms-container { + + background-color: white; + margin-top: 0.5rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + border-bottom: 0.1px solid rgb(144, 144, 144); + border-top: 0.1px solid rgb(144, 144, 144); +} + +.rooms-people-container { + + white-space: nowrap; + position: relative; + overflow-x: scroll; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + display: flex; + flex-direction: row; + width: 70%; +} + +.rooms-people-container ion-avatar { + + height: 2.5rem; + width: 2.5rem; +} + +.rooms-people-container div { + + margin-top: 0.4rem !important; + margin-right: 1rem !important; +} + +.rooms-create { + + border: 1px solid rgb(149, 225, 255); + border-radius: 70px; + justify-content: center; + flex-direction: row; + padding: 0.2rem !important; + +} + +.rooms-create ion-icon { + + font-size: 1.5rem !important; + margin-left: 0.5rem !important; + margin-top: 0.3rem !important; + float: left !important; +} + +.rooms-create ion-text { + + font-size: 0.7rem !important; + color:rgb(136, 136, 136) !important; + font-weight: 700 !important; + margin: 0 !important; + padding: 0 !important; + line-height: -1rem !important; +} + +.rooms-online { + + height: 13px !important; + width: 13px !important; + border-radius: 500px !important; + border: 2px solid white !important; + background-color: green !important; + z-index: 9999 !important; + position: absolute !important; + margin-left: 0.5rem !important; + margin-top: -0.8rem !important; +} + +.post { + + margin-top: 0.5rem !important; +} + +.post-container { + + background-color: white !important; +} + +.post-header { + + /* padding: none !important; */ + /* margin: none !important; */ +} + +.post-header { + + padding-top: 0.5rem !important; + padding-left: 0.5rem !important; + z-index: 9999; +} + +.post-header ion-avatar { + + /* border: 2px solid rgb(164, 222, 255); */ +} + +.post-header ion-label { + + margin-left: 0.5rem !important; + z-index: 99999 !important; +} + +.post-header ion-label h3 { + + font-weight: 600 !important; +} + +.post-header ion-label p ion-icon { + + position: absolute !important; + margin-top: 0.15rem !important; +} + +.post-header ion-icon { + + color: rgb(133, 133, 133) !important; +} + +.post-content { + + padding-left: 0.5rem !important; + margin-top: -0.7rem !important; +} + +.post-link { + + padding-left: 0.5rem !important; + background-color: rgb(245, 245, 245) !important; + display: flex !important; + flex-direction: row !important; + justify-content: space-between !important; + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.post-link ion-button { + + margin-right: 0.5rem !important; + --background: rgb(245, 245, 245) !important; + border: 1px solid rgb(98, 98, 98) !important; + border-radius: 8px !important; + color: rgb(98, 98, 98) !important; + text-transform: uppercase !important; + font-size: 0.8rem !important; +} + +.post-likes { + + padding-left: 0.5rem !important; + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + display: flex !important; + flex-direction: row !important; + justify-content: space-between !important; +} + +.post-like-icons { + + margin-top: 0.2rem !important; +} + +.post-likes ion-icon:not(:last-child) { + + background-color: rgb(70, 128, 255) !important; +} + +.post-likes ion-icon:last-child { + + background-color: rgb(255, 76, 76) !important; + margin-left: -0.5rem !important; +} + +.post-likes ion-icon { + + color: white !important; + border-radius: 100px !important; + padding: 0.2rem !important; + border: 2px solid white !important; +} + +.post-likes p { + + padding: none !important; + margin: none !important; + margin-top: 0.4rem !important; + font-size: 0.8rem !important; + margin-right: 0.5rem !important; + color: rgb(156, 156, 156) !important; + +} + +.post-image { + + padding: none !important; + margin: none !important; +} + +.post-image ion-img { + + width: 100% !important; +} + +.post-content p { + + font-size: 1rem !important; +} + +.post-actions { + + background-color: white !important; + display: flex !important; + flex-direction: row !important; + justify-content: space-between !important; + border-top: 0.1px solid rgb(228, 228, 228) !important; + padding-top: 0.5rem !important; + padding-bottom: 0.2rem !important; +} + +.post-actions ion-col { + + margin-left: -1rem !important; +} + +.post-actions ion-col:first-child { + + margin-right: -2rem !important; +} + +.post-actions ion-col:last-child { + + margin-right: 2rem !important; +} + +.post-actions ion-col ion-icon { + + font-size: 1.4rem !important; + color:rgb(105, 105, 105) !important; +} + +.post-actions ion-col ion-text { + + font-size: 0.8rem !important; + color: rgb(107, 107, 107) !important; + margin-top: 0.2rem !important; + margin-left: 0.5rem !important; + position: absolute !important; +} + +/* +
+

ionicbook

+ +
+ + +
+
*/ \ No newline at end of file diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.tsx b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.tsx new file mode 100644 index 0000000..9b7f202 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab2.tsx @@ -0,0 +1,242 @@ +import { + IonAvatar, + IonButton, + IonButtons, + IonCol, + IonContent, + IonGrid, + IonHeader, + IonIcon, + IonImg, + IonInput, + IonItem, + IonLabel, + IonPage, + IonRouterLink, + IonRow, + IonSearchbar, + IonText, + IonTitle, + IonToolbar, + useIonRouter, +} from '@ionic/react'; +import { + searchOutline, + chatboxOutline, + playCircleOutline, + bagOutline, + homeOutline, + menuOutline, + flagOutline, + notificationsOutline, + homeSharp, + home, + videocam, + images, + globe, + ellipse, + ellipsisHorizontal, + thumbsUp, + heart, + thumbsUpOutline, + shareOutline, + arrowRedoOutline, + chevronBackOutline, +} from 'ionicons/icons'; +import ExploreContainer from '../components/ExploreContainer'; +import Post from '../components/Post'; +import { messages, posts } from '../main/messages'; +import './Tab2.css'; +import React from 'react'; + +const Tab2 = (): React.JSX.Element => { + const router = useIonRouter(); + + function handleBackClick() { + router.goBack(); + } + + return ( + + + + + handleBackClick()}> + + + + + ionicbook + + + + + + + + + + + + + {/* */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Live + + + + + Photo + + + + + Room + + + + + +
+ + + Create +
+ Room +
+
+
+ +
+ {messages.map((message, index) => { + if (index > 1) { + return ( +
+ + + + {message.online && } +
+ ); + } + })} +
+
+ + + +
+ + + + + + +

Ionic Framework

+

+ Sponsored    + +

+
+ + +
+ + +

Build cross-platform web native mobile apps with one codebase! 🎉

+
+ + {/* */} + + {/* */} + +
+ +

ionicframework.com

+

Start building apps today!

+
+ + Learn more +
+ +
+
+ + +
+ +

16K Views

+
+ +
+ + + Like + + + + + Comment + + + + + Share + +
+
+
+
+ + {posts.map((post, index) => { + return ; + })} +
+
+ ); +}; + +export default Tab2; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab3.css b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab3.css new file mode 100644 index 0000000..e69de29 diff --git a/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab3.tsx b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab3.tsx new file mode 100644 index 0000000..3a29b8a --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/pages/Tab3.tsx @@ -0,0 +1,25 @@ +import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; +import ExploreContainer from '../components/ExploreContainer'; +import './Tab3.css'; + +const Tab3: React.FC = () => { + return ( + + + + Tab 3 + + + + + + Tab 3 + + + + + + ); +}; + +export default Tab3; diff --git a/03_source/mobile/src/pages/DemoFacebookClone/theme/variables.css b/03_source/mobile/src/pages/DemoFacebookClone/theme/variables.css new file mode 100644 index 0000000..12e7354 --- /dev/null +++ b/03_source/mobile/src/pages/DemoFacebookClone/theme/variables.css @@ -0,0 +1,352 @@ +/* Ionic Variables and Theming. For more info, please see: +http://ionicframework.com/docs/theming/ */ + +/** Ionic CSS Variables **/ +:root { + /** primary **/ + --ion-color-primary: #3880ff; + --ion-color-primary-rgb: 56, 128, 255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #3171e0; + --ion-color-primary-tint: #4c8dff; + + /** secondary **/ + --ion-color-secondary: #3dc2ff; + --ion-color-secondary-rgb: 61, 194, 255; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #36abe0; + --ion-color-secondary-tint: #50c8ff; + + /** success **/ + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45, 211, 111; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + /** warning **/ + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255, 196, 9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0, 0, 0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + /** danger **/ + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235, 68, 90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + /** purple **/ + --ion-color-tertiary: #894eb1; + --ion-color-tertiary-rgb: 235, 68, 90; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #6f00b9; + --ion-color-tertiary-tint: #8633bd; + + /** dark **/ + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 36, 40; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + /** medium **/ + --ion-color-medium: #92949c; + --ion-color-medium-rgb: 146, 148, 156; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #808289; + --ion-color-medium-tint: #9d9fa6; + + /** light **/ + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 245, 248; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; +} + +@media (prefers-color-scheme: dark1) { + /* + * Dark Colors + * ------------------------------------------- + */ + + body { + --ion-color-primary: #428cff; + --ion-color-primary-rgb: 66,140,255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #3a7be0; + --ion-color-primary-tint: #5598ff; + + --ion-color-secondary: #50c8ff; + --ion-color-secondary-rgb: 80,200,255; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #46b0e0; + --ion-color-secondary-tint: #62ceff; + + --ion-color-tertiary: #6a64ff; + --ion-color-tertiary-rgb: 106,100,255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255,255,255; + --ion-color-tertiary-shade: #5d58e0; + --ion-color-tertiary-tint: #7974ff; + + --ion-color-success: #2fdf75; + --ion-color-success-rgb: 47,223,117; + --ion-color-success-contrast: #000000; + --ion-color-success-contrast-rgb: 0,0,0; + --ion-color-success-shade: #29c467; + --ion-color-success-tint: #44e283; + + --ion-color-warning: #ffd534; + --ion-color-warning-rgb: 255,213,52; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0,0,0; + --ion-color-warning-shade: #e0bb2e; + --ion-color-warning-tint: #ffd948; + + --ion-color-danger: #ff4961; + --ion-color-danger-rgb: 255,73,97; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-shade: #e04055; + --ion-color-danger-tint: #ff5b71; + + --ion-color-dark: #f4f5f8; + --ion-color-dark-rgb: 244,245,248; + --ion-color-dark-contrast: #000000; + --ion-color-dark-contrast-rgb: 0,0,0; + --ion-color-dark-shade: #d7d8da; + --ion-color-dark-tint: #f5f6f9; + + --ion-color-medium: #989aa2; + --ion-color-medium-rgb: 152,154,162; + --ion-color-medium-contrast: #000000; + --ion-color-medium-contrast-rgb: 0,0,0; + --ion-color-medium-shade: #86888f; + --ion-color-medium-tint: #a2a4ab; + + --ion-color-light: #222428; + --ion-color-light-rgb: 34,36,40; + --ion-color-light-contrast: #ffffff; + --ion-color-light-contrast-rgb: 255,255,255; + --ion-color-light-shade: #1e2023; + --ion-color-light-tint: #383a3e; + } + + /* + * iOS Dark Theme + * ------------------------------------------- + */ + + .ios body { + --ion-background-color: #000000; + --ion-background-color-rgb: 0,0,0; + + --ion-text-color: #ffffff; + --ion-text-color-rgb: 255,255,255; + + --ion-color-step-50: #0d0d0d; + --ion-color-step-100: #1a1a1a; + --ion-color-step-150: #262626; + --ion-color-step-200: #333333; + --ion-color-step-250: #404040; + --ion-color-step-300: #4d4d4d; + --ion-color-step-350: #595959; + --ion-color-step-400: #666666; + --ion-color-step-450: #737373; + --ion-color-step-500: #808080; + --ion-color-step-550: #8c8c8c; + --ion-color-step-600: #999999; + --ion-color-step-650: #a6a6a6; + --ion-color-step-700: #b3b3b3; + --ion-color-step-750: #bfbfbf; + --ion-color-step-800: #cccccc; + --ion-color-step-850: #d9d9d9; + --ion-color-step-900: #e6e6e6; + --ion-color-step-950: #f2f2f2; + + --ion-item-background: #000000; + + --ion-card-background: #1c1c1d; + } + + .ios ion-modal { + --ion-background-color: var(--ion-color-step-100); + --ion-toolbar-background: var(--ion-color-step-150); + --ion-toolbar-border-color: var(--ion-color-step-250); + } + + + /* + * Material Design Dark Theme + * ------------------------------------------- + */ + + .md body { + --ion-background-color: #121212; + --ion-background-color-rgb: 18,18,18; + + --ion-text-color: #ffffff; + --ion-text-color-rgb: 255,255,255; + + --ion-border-color: #222222; + + --ion-color-step-50: #1e1e1e; + --ion-color-step-100: #2a2a2a; + --ion-color-step-150: #363636; + --ion-color-step-200: #414141; + --ion-color-step-250: #4d4d4d; + --ion-color-step-300: #595959; + --ion-color-step-350: #656565; + --ion-color-step-400: #717171; + --ion-color-step-450: #7d7d7d; + --ion-color-step-500: #898989; + --ion-color-step-550: #949494; + --ion-color-step-600: #a0a0a0; + --ion-color-step-650: #acacac; + --ion-color-step-700: #b8b8b8; + --ion-color-step-750: #c4c4c4; + --ion-color-step-800: #d0d0d0; + --ion-color-step-850: #dbdbdb; + --ion-color-step-900: #e7e7e7; + --ion-color-step-950: #f3f3f3; + + --ion-item-background: #1e1e1e; + + --ion-toolbar-background: #1f1f1f; + + --ion-tab-bar-background: #1f1f1f; + + --ion-card-background: #1e1e1e; + } +} + +ion-header, +ion-toolbar { + + border-bottom: none !important; + --border-color: white; +} + +ion-title { + + --color: rgb(48, 48, 58); +} + +ion-tab-bar { + + border-top: none; +} + +ion-tab-button { + + --color: rgb(211, 211, 211); + height: 2rem; +} + +.tab-selected, +ion-icon.search { + + color: rgb(88, 88, 88) !important; +} + +.avatar { + + height: 3.5rem; + width: 3.5rem; +} + +.online { + + height: 20px; + width: 20px; + border-radius: 500px; + border: 3px solid white; + background-color: green; + z-index: 9999; + position: absolute; + margin-left: 2.5rem; + margin-top: 1.2rem; +} + +.contact-details { + + margin-top: 0rem; + margin-left: 1rem; + margin-right: 1rem; +} + +.stats { + + margin-top: -1rem; + margin-right: 0.5rem; +} + +.last-online { + + color: rgb(190, 190, 190); + font-size: 0.9rem; + margin-bottom: 0.5rem; +} + +.stats ion-badge { + + margin: 0 !important; + margin-top: -3rem !important; + border-radius: 2px !important; +} + + + +.contact-details h1 { + + font-size: 1.2rem; +} + +.contact-details p { + + font-size: 0.8rem; +} + +.message-item { + + padding-top: 1.5rem; +} + +.profile-avatar { + + margin: 0 !important; + padding: 0 !important; + height: 2rem; + width: 2rem; + border-radius: 500px !important; +} + +.profile-name { + + color:#c8c8c8; + font-weight: 600 !important; + font-size: 0.9rem !important; + margin-left: 0.5rem; +} + +.add-fab { + + opacity: 0.7; +} + +/* */ \ No newline at end of file