StickyMenu.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <LayoutContainer>
  3. <div :class="stickyClass" >
  4. <v-row class="outil-row" justify="end">
  5. <v-col cols="3">
  6. <div class="container-square">
  7. <v-row v-for="square in squares" :key="square.id" :class="square.bgColor">
  8. <div>
  9. <v-icon :class="square.iconClass" />
  10. <p class="text-square">{{ square.text }}</p>
  11. </div>
  12. </v-row>
  13. </div>
  14. </v-col>
  15. </v-row>
  16. </div>
  17. </LayoutContainer>
  18. </template>
  19. <script setup lang="ts">
  20. import { ref, defineProps } from "vue";
  21. const props = defineProps({
  22. shouldShowStickyMenu: Boolean,
  23. squaresData: Array,
  24. });
  25. const stickyClass = ref("sticky-scroll");
  26. const squares = ref(props.squaresData);
  27. </script>
  28. <style scoped>
  29. .container-square {
  30. display: flex;
  31. flex-direction: column;
  32. justify-content: space-between;
  33. color: white;
  34. font-weight: 500;
  35. font-size: 0.7rem;
  36. line-height: 15px;
  37. text-align: center;
  38. letter-spacing: 0.2em;
  39. text-transform: uppercase;
  40. }
  41. .red-square,
  42. .yellow-square,
  43. .blue-square,
  44. .darkblue-square {
  45. position: relative;
  46. font-family: "Barlow";
  47. width: 10rem;
  48. height: 7rem;
  49. margin-left: 14rem;
  50. padding: 1rem;
  51. }
  52. .yellow-square {
  53. background: #f9d648;
  54. color: #0e2d32;
  55. }
  56. .red-square {
  57. background: #d8050b;
  58. }
  59. .blue-square {
  60. background: rgba(32, 147, 190);
  61. }
  62. .darkblue-square {
  63. background: #0e2d32;
  64. }
  65. .text-square {
  66. margin: 0.5rem 2rem;
  67. }
  68. .outil-row {
  69. margin: 5rem 0;
  70. }
  71. </style>