cv.html.heex 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. <link
  9. rel="stylesheet"
  10. href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css"
  11. integrity="sha512NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w=="
  12. crossorigin="anonymous"
  13. referrerpolicy="no-referrer"
  14. />
  15. <style>
  16. @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800);
  17. @charset "utf-8";
  18. @-webkit-viewport {
  19. width: device-width;
  20. }
  21. @-moz-viewport {
  22. width: device-width;
  23. }
  24. @-ms-viewport {
  25. width: device-width;
  26. }
  27. @-o-viewport {
  28. width: device-width;
  29. }
  30. @viewport {
  31. width: device-width;
  32. }
  33. html {
  34. background-color: rgb(51, 73, 96);
  35. }
  36. * {
  37. box-sizing: border-box;
  38. }
  39. h1, h2, h3, h4, h5, h6 {
  40. font-size: 1em;
  41. }
  42. ol,
  43. ul {
  44. list-style: none;
  45. padding-inline: 0;
  46. }
  47. body {
  48. width: 80;
  49. max-width: 120ch;
  50. margin-top: 2em;
  51. margin-bottom: 2em;
  52. margin-right: auto;
  53. margin-left: auto;
  54. padding: 1em;
  55. background-color: white;
  56. font-family: 'Open Sans', Arial, Tahoma;
  57. font-weight: 400;
  58. display: grid;
  59. grid-template-areas:
  60. "basics basics"
  61. "work education"
  62. "work skills"
  63. "work languages"
  64. "work _";
  65. }
  66. dl {
  67. display: grid;
  68. grid-template-columns: auto 1fr;
  69. }
  70. dt {
  71. grid-column: 1/2;
  72. }
  73. dd {
  74. grid-column: 2/3;
  75. }
  76. #basics {
  77. grid-area: basics;
  78. display: grid;
  79. justify-items: center;
  80. }
  81. #work {
  82. grid-area: work;
  83. }
  84. #basics>h1,
  85. #basics>h2 {
  86. text-transform: uppercase;
  87. }
  88. data.name::after {
  89. content: attr(value);
  90. }
  91. data.position[lang="fr"]::after {
  92. content: 'Poste: ' attr(value);
  93. }
  94. data.position[lang="en"]::after {
  95. display: none;
  96. }
  97. dt.work_location+dd::before,
  98. data.work_location::after {
  99. content: '🏢 ' attr(value);
  100. }
  101. dt.location::after,
  102. data.location::after {
  103. content: '🏠 ' attr(value);
  104. }
  105. li h1,
  106. li h2,
  107. li h3 {
  108. font-weight: 500;
  109. }
  110. #skills .tools::after {
  111. content: "Outils";
  112. }
  113. </style>
  114. </head>
  115. <body>
  116. <div id="basics">
  117. <h1><%= @basics.name %></h1>
  118. <h2><%= @basics.label %></h2>
  119. <dl>
  120. <dt class="location">Lieu</dt>
  121. <dd><%= @basics.location.city %></dd>
  122. </dl>
  123. </div>
  124. <div id="work">
  125. <h1>Expériences professionnelles</h1>
  126. <ol>
  127. <%= for work <- @work do %>
  128. <li>
  129. <.work work={work} />
  130. </li>
  131. <% end %>
  132. </ol>
  133. </div>
  134. <div id="skills">
  135. <h1>Compétences</h1>
  136. <ul>
  137. <%= for skill <- @skills do %>
  138. <li><.skill skill={skill} /></li>
  139. <% end %>
  140. </ul>
  141. </div>
  142. <div id="education">
  143. <h1>Formation</h1>
  144. <ol>
  145. <%= for educ <- @education do %>
  146. <li><.education educ={educ} /></li>
  147. <% end %>
  148. </ol>
  149. </div>
  150. <div id="languages">
  151. <h1>Langues</h1>
  152. <ul>
  153. <%= for lang <- @languages do %>
  154. <li><.language lang={lang} /></li>
  155. <% end %>
  156. </ul>
  157. </div>
  158. </body>
  159. </html>