VAlert.sass 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. @use '../../styles/tools'
  2. @use './variables' as *
  3. @include tools.layer('components')
  4. .v-alert
  5. display: grid
  6. flex: 1 1
  7. grid-template-areas: "prepend content append close" ". content . ."
  8. grid-template-columns: max-content auto max-content max-content
  9. position: relative
  10. padding: $alert-padding
  11. overflow: hidden
  12. --v-border-color: #{$alert-border-color}
  13. @include tools.position($alert-positions)
  14. @include tools.rounded($alert-border-radius)
  15. @include tools.variant($alert-variants...)
  16. &--prominent
  17. grid-template-areas: "prepend content append close" "prepend content . ."
  18. &.v-alert--border
  19. --v-border-opacity: #{$alert-border-opacity}
  20. &.v-alert--border-start
  21. padding-inline-start: $alert-padding + $alert-border-thin-width
  22. &.v-alert--border-end
  23. padding-inline-end: $alert-padding + $alert-border-thin-width
  24. &--variant-plain
  25. transition: $alert-plain-transition
  26. @at-root
  27. @include tools.density('v-alert', $alert-density) using ($modifier)
  28. padding-bottom: $alert-padding + $modifier
  29. padding-top: $alert-padding + $modifier
  30. &.v-alert--border-top
  31. padding-top: $alert-padding + $alert-border-thin-width + $modifier
  32. &.v-alert--border-bottom
  33. padding-bottom: $alert-padding + $alert-border-thin-width + $modifier
  34. .v-alert__border
  35. border-radius: inherit
  36. bottom: 0
  37. left: 0
  38. opacity: var(--v-border-opacity)
  39. position: absolute
  40. pointer-events: none
  41. right: 0
  42. top: 0
  43. width: 100%
  44. @include tools.border($alert-border...)
  45. .v-alert--border-start &
  46. border-inline-start-width: $alert-border-thin-width
  47. .v-alert--border-end &
  48. border-inline-end-width: $alert-border-thin-width
  49. .v-alert--border-top &
  50. border-top-width: $alert-border-thin-width
  51. .v-alert--border-bottom &
  52. border-bottom-width: $alert-border-thin-width
  53. .v-alert__close
  54. flex: 0 1 auto
  55. grid-area: close
  56. .v-alert__content
  57. align-self: center
  58. grid-area: content
  59. overflow: hidden
  60. .v-alert__append,
  61. .v-alert__close
  62. align-self: flex-start
  63. margin-inline-start: $alert-append-margin-inline-start
  64. .v-alert__append
  65. align-self: flex-start
  66. grid-area: append
  67. + .v-alert__close
  68. margin-inline-start: $alert-append-close-margin-inline-start
  69. .v-alert__prepend
  70. align-self: flex-start
  71. display: flex
  72. align-items: center
  73. grid-area: prepend
  74. margin-inline-end: $alert-prepend-margin-inline-end
  75. .v-alert--prominent &
  76. align-self: center
  77. .v-alert__underlay
  78. grid-area: none
  79. position: absolute
  80. .v-alert--border-start &
  81. border-top-left-radius: 0
  82. border-bottom-left-radius: 0
  83. .v-alert--border-end &
  84. border-top-right-radius: 0
  85. border-bottom-right-radius: 0
  86. .v-alert--border-top &
  87. border-top-left-radius: 0
  88. border-top-right-radius: 0
  89. .v-alert--border-bottom &
  90. border-bottom-left-radius: 0
  91. border-bottom-right-radius: 0
  92. .v-alert-title
  93. align-items: center
  94. align-self: center
  95. display: flex
  96. font-size: $alert-title-font-size
  97. font-weight: $alert-title-font-weight
  98. hyphens: $alert-title-hyphens
  99. letter-spacing: $alert-title-letter-spacing
  100. line-height: $alert-title-line-height
  101. overflow-wrap: $alert-title-overflow-wrap
  102. text-transform: $alert-title-text-transform
  103. word-break: $alert-title-word-break
  104. word-wrap: $alert-title-word-wrap