説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

app-email.scss 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. /* App Email
  2. ******************************************************************************* */
  3. @import "../_bootstrap-extended/include";
  4. @import "../_components/include";
  5. $email-sidebar-width: 16.25rem;
  6. $email-app-height: calc(100vh - 12rem);
  7. $email-app-height-with-no-navbar: calc(100vh - 7.5rem);
  8. $email-app-horizontal-height-diff: 2.3rem;
  9. $email-filter-padding-x: 1.5rem;
  10. .app-email {
  11. position: relative;
  12. overflow: hidden;
  13. block-size: $email-app-height;
  14. @include media-breakpoint-down("md") {
  15. block-size: calc(100vh - 11rem);
  16. }
  17. .layout-navbar-hidden & {
  18. block-size: $email-app-height-with-no-navbar;
  19. }
  20. .layout-horizontal & {
  21. block-size: calc($email-app-height + calc($email-app-horizontal-height-diff / 1.9));
  22. @include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
  23. block-size: calc($email-app-height - $email-app-horizontal-height-diff);
  24. }
  25. }
  26. /* Email sidebar */
  27. .app-email-sidebar {
  28. @media (width >= 992px) {
  29. position: static;
  30. block-size: auto;
  31. }
  32. position: absolute;
  33. z-index: 4;
  34. flex-basis: $email-sidebar-width;
  35. background-color: var(--#{$prefix}paper-bg);
  36. block-size: 100%;
  37. inline-size: $email-sidebar-width;
  38. inset-inline-start: calc(-#{$email-sidebar-width} - 1.2rem);
  39. transition: all .2s;
  40. ul {
  41. li {
  42. &:not(.active) {
  43. a {
  44. color: var(--#{$prefix}heading-color);
  45. }
  46. }
  47. }
  48. }
  49. .btn-compost-wrapper {
  50. padding: 1.5rem;
  51. }
  52. &.show {
  53. inset-inline-start: 0;
  54. }
  55. .email-filters {
  56. block-size: calc(100vh - 16.6rem);
  57. .layout-navbar-hidden & {
  58. block-size: calc(100vh - 12.6rem);
  59. }
  60. .layout-horizontal & {
  61. block-size: calc(100vh - 15.6rem);
  62. @include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
  63. block-size: calc(100vh - 16.6rem - $email-app-horizontal-height-diff);
  64. }
  65. }
  66. .email-filter-folders {
  67. li {
  68. &.active {
  69. border-color: var(--#{#{$prefix}primary});
  70. }
  71. }
  72. }
  73. li {
  74. border-inline-start: 3px solid transparent;
  75. min-block-size: 1.875rem;
  76. padding-block: .25rem;
  77. padding-inline: $email-filter-padding-x;
  78. padding-inline-start: calc($email-filter-padding-x - 3px);
  79. h6 {
  80. font-size: 1rem;
  81. }
  82. }
  83. }
  84. .email-filter-labels .badge-dot {
  85. block-size: .625rem;
  86. inline-size: .625rem;
  87. }
  88. }
  89. /* Email compose */
  90. .app-email-compose {
  91. .modal-dialog {
  92. position: fixed;
  93. inline-size: 100%;
  94. inset-block-end: 0;
  95. inset-inline-end: 0;
  96. .modal-header {
  97. background-color: color-mix(in sRGB, var(--#{$prefix}base-color) 6%, var(--#{$prefix}paper-bg));
  98. }
  99. .modal-content {
  100. overflow: hidden;
  101. box-shadow: var(--#{$prefix}box-shadow-xl);
  102. }
  103. }
  104. .email-compose-to {
  105. .select2-selection {
  106. border-color: transparent;
  107. box-shadow: none;
  108. padding-inline: calc($form-select-padding-x - $input-border-width);
  109. .select2-selection__choice {
  110. display: flex;
  111. align-items: center;
  112. line-height: 0;
  113. padding-block: .125rem;
  114. }
  115. }
  116. }
  117. .email-compose-toggle-wrapper {
  118. inline-size: 80px;
  119. }
  120. .ql-editor {
  121. block-size: 10rem;
  122. min-block-size: 10rem;
  123. padding-inline: calc($email-filter-padding-x + .25rem);
  124. }
  125. .ql-snow.ql-toolbar {
  126. padding-block: .5rem;
  127. padding-inline: 1rem;
  128. }
  129. .ql-editor.ql-blank {
  130. padding-inline: 1.5rem;
  131. &::before {
  132. padding-inline-start: 0;
  133. }
  134. }
  135. }
  136. /* Email list */
  137. .app-emails-list {
  138. .emails-list-header {
  139. .emails-list-header-hr {
  140. margin-block: 0;
  141. }
  142. .input-group:focus-within::before,
  143. .input-group:focus::before {
  144. box-shadow: none;
  145. }
  146. }
  147. .email-list {
  148. @include media-breakpoint-up(lg) {
  149. block-size: calc(100vh - 18.9rem);
  150. }
  151. @include media-breakpoint-down(lg) {
  152. block-size: calc(100vh - 18.9rem);
  153. }
  154. @include media-breakpoint-down(md) {
  155. block-size: calc(100vh - 18rem);
  156. }
  157. .layout-navbar-hidden & {
  158. @include media-breakpoint-up(lg) {
  159. block-size: calc(100vh - 15.5rem);
  160. }
  161. @include media-breakpoint-down(lg) {
  162. block-size: calc(100vh - 15.5rem);
  163. }
  164. }
  165. .layout-horizontal & {
  166. block-size: calc(100vh - 18.2rem);
  167. @include media-breakpoint-up(lg) {
  168. block-size: calc(100vh - 17.75rem);
  169. }
  170. @include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
  171. block-size: calc(100vh - 18.75rem - $email-app-horizontal-height-diff);
  172. }
  173. }
  174. li.email-list-item {
  175. z-index: 1;
  176. border-block-end: 1px solid var(--#{$prefix}border-color);
  177. cursor: pointer;
  178. min-block-size: 4.375rem;
  179. padding-block: .875rem;
  180. padding-inline: 1rem;
  181. transition: all .2s ease-in-out;
  182. &:last-child {
  183. border-block-end: 0;
  184. }
  185. &.email-marked-read {
  186. background-color: color-mix(in sRGB, var(--#{$prefix}base-color) 6%, var(--#{$prefix}paper-bg));
  187. }
  188. &:hover {
  189. border-block-end-color: transparent;
  190. box-shadow: var(--#{$prefix}box-shadow-sm);
  191. }
  192. .email-list-item-actions li {
  193. box-shadow: none;
  194. }
  195. &[data-starred="true"] {
  196. .email-list-item-bookmark {
  197. color: var(--#{$prefix}warning);
  198. }
  199. }
  200. .email-list-item-username {
  201. font-weight: $font-weight-medium;
  202. }
  203. .email-list-item-time {
  204. display: inline-block;
  205. inline-size: 60px;
  206. text-align: end;
  207. }
  208. .email-list-item-meta {
  209. .email-list-item-actions {
  210. display: none;
  211. li {
  212. padding: 0;
  213. margin: 0;
  214. }
  215. }
  216. }
  217. .list-inline-item {
  218. &:not(:last-child) {
  219. margin-inline-end: .25rem;
  220. }
  221. }
  222. &.email-list-item:not(.list-inline-item):hover {
  223. z-index: 5;
  224. transform: translateY(-2px);
  225. }
  226. }
  227. }
  228. }
  229. /* Email view */
  230. .app-email-view {
  231. position: absolute;
  232. z-index: -1;
  233. block-size: $email-app-height;
  234. inline-size: 100%;
  235. inset-block-start: 0;
  236. inset-inline-end: -100%;
  237. transition: all .25s ease;
  238. @include media-breakpoint-down(md) {
  239. block-size: calc($email-app-height + 2rem);
  240. }
  241. .layout-navbar-hidden & {
  242. block-size: $email-app-height-with-no-navbar;
  243. }
  244. .layout-horizontal & {
  245. block-size: calc($email-app-height + 1rem);
  246. @include media-breakpoint-up(lg) {
  247. block-size: calc($email-app-height + 1rem);
  248. }
  249. @include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
  250. block-size: calc($email-app-height - $email-app-horizontal-height-diff);
  251. }
  252. }
  253. .email-card-last {
  254. border: 1px solid var(--#{$prefix}card-border-color);
  255. &::before,
  256. &::after {
  257. border: 1px solid var(--#{$prefix}border-color);
  258. box-shadow: var(--#{$prefix}card-box-shadow);
  259. }
  260. &::before {
  261. background-color: rgba(var(--#{$prefix}paper-bg-rgb), .4);
  262. }
  263. &::after {
  264. background-color: rgba(var(--#{$prefix}paper-bg-rgb), .7);
  265. }
  266. }
  267. .email-reply {
  268. border: 1px solid var(--#{$prefix}border-color);
  269. }
  270. &.show {
  271. z-index: 4;
  272. inset-inline-end: -1px;
  273. }
  274. .app-email-view-content {
  275. @include media-breakpoint-up(md) {
  276. block-size: calc(100vh - 19.6rem);
  277. }
  278. @include media-breakpoint-down(md) {
  279. block-size: calc(100vh - 17.65rem);
  280. }
  281. .layout-horizontal & {
  282. block-size: calc(100vh - 18rem);
  283. @include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
  284. block-size: calc(100vh - 19.2rem - $email-app-horizontal-height-diff);
  285. }
  286. }
  287. .ql-container {
  288. border: 0;
  289. .ql-editor {
  290. block-size: 7rem;
  291. min-block-size: 7rem;
  292. }
  293. }
  294. .ql-editor {
  295. padding-inline-start: .5rem;
  296. }
  297. .email-card-prev {
  298. display: none;
  299. }
  300. .email-card-last {
  301. transition: all .25s ease-in-out;
  302. &::before {
  303. position: absolute;
  304. z-index: -1;
  305. @include border-radius(.375rem);
  306. content: "";
  307. inset-block: -2rem 1rem;
  308. inset-inline: 2.5rem;
  309. }
  310. &::after {
  311. position: absolute;
  312. z-index: -1;
  313. @include border-radius(.375rem);
  314. content: "";
  315. inset-block: -1rem .5rem;
  316. inset-inline: 1rem;
  317. }
  318. &.hide-pseudo {
  319. &::before,
  320. &::after {
  321. display: none;
  322. }
  323. }
  324. }
  325. }
  326. }
  327. .app-email-compose .email-compose-actions .email-send-btn {
  328. &::after {
  329. display: none;
  330. }
  331. }
  332. .email-compose-form {
  333. .form-control {
  334. padding-block: $input-padding-y;
  335. padding-inline: $input-padding-x;
  336. }
  337. }
  338. /* Responsive style */
  339. @media (width >= 1199px) {
  340. .email-list li {
  341. .email-list-item-meta {
  342. margin-inline-end: .45rem;
  343. }
  344. }
  345. }
  346. @media (width >= 992px) {
  347. .email-list {
  348. li.email-list-item:hover {
  349. .email-list-item-meta {
  350. .email-list-item-attachment,
  351. .email-list-item-time,
  352. .email-list-item-label {
  353. display: none;
  354. }
  355. .email-list-item-actions {
  356. display: block;
  357. }
  358. }
  359. }
  360. }
  361. .app-email-view {
  362. inline-size: calc(100% - 16.2rem);
  363. }
  364. }
  365. @media (width <= 576px) {
  366. .app-emails-list {
  367. .emails-list-header {
  368. padding: 1rem;
  369. }
  370. .email-list {
  371. li.email-list-item {
  372. padding: 1rem;
  373. .email-list-item-username {
  374. font-size: .85rem;
  375. }
  376. }
  377. }
  378. }
  379. .app-email-view {
  380. .email-list-item-username {
  381. font-size: 1rem;
  382. }
  383. }
  384. }
  385. }