UNPKG

react-floating-profile

Version:

React component to display your github profile <p align="left"> <a href="https://www.npmjs.com/package/react-floating-profile"><img src="https://flat.badgen.net/npm/v/react-floating-profile" alt="react-floating-profile version" /></a> <a href="http

307 lines (290 loc) 7.36 kB
:root { --floating-color-light: #3d444d; --floating-color-medium: #151b23; --floating-color-neutral: #0d1117; --floating-color-shadowy: #010409; --floating-color-dark: #000000; --floating-margin: 0.625rem; --floating-padding: 0.625rem; --floating-radius: 0.5rem; --floating-icon-location: 20px; --floating-text-gray: #9198a1; --floating-text-white: rgba(255, 255, 255, 0.87); --flaoting-text-blue: #4493f8; --floating-text-xl: 2rem; --floating-text-lg: 1.4rem; --floating-text-md: 1.2rem; --floating-text-sm: 0.925rem; --floating-text-xs: 0.8rem; --floating-border-thin: 1px solid var(--floating-color-light); --floating-border-thick: 2px solid var(--floating-color-light); --floating-border-super-thick: 3px solid var(--floating-color-light); --floating-line-height-tight: 1.2; --floating-line-height-normal: 1.4; --floating-line-height-relaxed: 1.6; } *::-webkit-scrollbar { display: none; } /* CSS Reset for consistent styling across environments */ .floating-profile-container { margin: 0; padding: 0; box-sizing: border-box; /* padding과 border가 요소 크기에 포함되도록 설정 */ max-width: 100%; /* 요소가 부모 크기를 넘지 않도록 제한 */ -ms-overflow-style: none; /* 인터넷 익스플로러 */ scrollbar-width: none; } .floating-profile-container { box-sizing: border-box; /* padding과 border가 요소 크기에 포함되도록 설정 */ max-width: 100%; /* 요소가 부모 크기를 넘지 않도록 제한 */ -ms-overflow-style: none; /* 인터넷 익스플로러 */ scrollbar-width: none; /* 파이어폭스 */ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif; line-height: var(--floating-line-height-normal); } /* Floating-Icon */ .icon-button-container { position: fixed; /* top: var(--floating-icon-location); bottom: var(--floating-icon-location); right: var(--floating-icon-location); left: var(--floating-icon-location); */ display: block; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; text-decoration: none; box-sizing: border-box; overflow: hidden; } .icon-button { padding: 0; background-color: var(--floating-color-medium); cursor: pointer; } .icon-button > img { width: 100%; height: 100%; } .icon-button:active { transform: scale(0.95); } .circle-shape-container { border-radius: 100%; } .circle-shape { border-radius: 100%; } .rect-shape-container { border-radius: 10%; } .rect-shape { border-radius: 10%; } .icon:hover { border: none; } .icon-large { width: 60px; height: 60px; border: var(--floating-border-super-thick); } .icon-medium { width: 40px; height: 40px; border: var(--floating-border-thick); } .icon-small { width: 30px; height: 30px; border: var(--floating-border-thin); } /* Floating-Icon END*/ /* ProfileModal COMPONENT, Top-level class */ .modal-overlay { position: fixed; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out; } .modal-overlay.show { opacity: 1; visibility: visible; } .modal-overlay.show .modal-container { transform: translateY(0); } .modal-container { transform: translateY(20px); transition: transform 0.3s ease-in-out; z-index: 99999; color-scheme: light dark; color: var(--floating-text-white); font-synthesis: none; text-rendering: optimizeLegibility; width: 450px; max-height: 600px; overflow-y: scroll; position: fixed; bottom: 20px; /* 아이콘 바로 위 */ right: 20px; background: var(--floating-color-shadowy); border: var(--floating-border-thin); border-radius: var(--floating-radius); box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15); padding: 15px; /* font-family: Arial, sans-serif; */ font-family: "Roboto", sans-serif; } .modal-container ul { text-align: left; } .modal-content { width: 100%; display: flex; flex-direction: column; align-items: center; } /* ProfileModal COMPONENT END*/ /* ProfileHeader COMPONENT*/ .profile-header-container { width: 100%; display: flex; justify-content: space-between; margin-bottom: var(--floating-margin); align-items: center; } .profile-name { font-weight: 700; font-size: var(--floating-text-xl); line-height: var(--floating-line-height-tight); margin: 0; } .profile-name, .profile-login-location, .profile-bio, .profile-link { text-align: left; } .profile-login-location, .profile-bio { font-size: var(--floating-text-sm); line-height: var(--floating-line-height-normal); margin: 0; } .profile-login { font-weight: 700; } .profile-link { text-decoration: underline; color: inherit; display: block; } /* ProfileHeader COMPONENT END*/ /* ReadMe COMPONENT */ .readme-container { text-align: center; position: relative; box-sizing: border-box; width: 100%; max-height: 400px; border: var(--floating-border-thin); background-color: var(--floating-color-neutral); border-radius: var(--floating-radius); color: var(--floating-text-white); overflow-y: scroll; overflow-x: hidden; display: flex; flex-direction: column; object-fit: cover; margin-bottom: var(--floating-margin); } .readme-container img { max-width: 100%; } .close-btn-container { width: 100%; display: flex; justify-content: flex-end; } .close-btn { border: none; background-color: transparent; cursor: pointer; font-size: 1rem; } /* README COMPONENT END*/ /* PinnedRepo COMPONENT*/ .repo-container { width: 100%; } .repo-item { border: var(--floating-border-thin); background-color: var(--floating-color-neutral); border-radius: var(--floating-radius); padding: var(--floating-padding); margin-bottom: var(--floating-margin); } .repo-title { text-decoration: none; font-size: var(--floating-text-md); font-weight: 700; color: var(--flaoting-text-blue); display: block; line-height: var(--floating-line-height-tight); margin: 0; padding: 0; } .repo-title:hover { color: var(--flaoting-text-blue); } .repo-title, .repo-desc, .repo-lan, .repo-label { text-align: left; } .repo-desc { font-size: var(--floating-text-sm); line-height: var(--floating-line-height-normal); margin: 0.25rem 0; } .repo-label { font-weight: 700; font-size: var(--floating-text-lg); color: var(--floating-text-white); padding: var(--floating-padding); } .repo-lan { color: var(--floating-text-gray); font-size: var(--floating-text-xs); line-height: var(--floating-line-height-normal); margin: 0; } /* PinnedRepo COMPONENT END */ /* Organization */ .org-container { width: 50%; display: flex; justify-content: space-between; margin: var(--floating-padding) auto; } /* Organization END*/ /* Media Query */ @media screen and (max-width: 720px) { .modal-container { width: 100vw; height: 100vh; max-height: none; bottom: 0; right: 0; left: 0; top: 0; border-radius: 0; } }