You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gitea-ui.tmpl 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. {{template "base/head" .}}
  2. <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/devtest.css?v={{AssetVersion}}">
  3. <div class="page-content devtest ui container">
  4. <div>
  5. <h1>Button</h1>
  6. <div>
  7. Style:
  8. <label><input type="checkbox" name="button-style-compact" value="compact">compact</label>
  9. <label><input type="radio" name="button-style-size" value="">(normal)</label>
  10. <label><input type="radio" name="button-style-size" value="tiny">tiny</label>
  11. <label><input type="radio" name="button-style-size" value="mini">mini</label>
  12. </div>
  13. <div>
  14. State:
  15. <label><input type="checkbox" name="button-state-disabled" value="disabled">disabled</label>
  16. </div>
  17. <div id="devtest-button-samples">
  18. <ul class="button-sample-groups">
  19. <li class="sample-group">
  20. <h2>General purpose:</h2>
  21. <button class="ui button">Unclassed</button>
  22. <button class="ui basic button">Basic Unclassed</button>
  23. <button class="ui primary button">Primary</button>
  24. <button class="ui basic primary button">Basic Primary</button>
  25. <button class="ui negative button">Negative</button>
  26. <button class="ui basic negative button">Basic Negative</button>
  27. <button class="ui positive button">Positive</button>
  28. <button class="ui basic positive button">Basic Positive</button>
  29. </li>
  30. <li class="sample-group">
  31. <h2>Recommended colors:</h2>
  32. <button class="ui red button">Red</button>
  33. <button class="ui basic red button">Basic Red</button>
  34. <button class="ui primary button">Green</button>
  35. <button class="ui basic primary button">Basic Green</button>
  36. <button class="ui blue button">Blue</button>
  37. <button class="ui basic blue button">Basic Blue</button>
  38. <button class="ui orange button">Orange</button>
  39. <button class="ui basic orange button">Basic Orange</button>
  40. <button class="ui yellow button">Yellow</button>
  41. <button class="ui basic yellow button">Basic Yellow</button>
  42. </li>
  43. <li class="sample-group">
  44. <h2>Supported but not recommended:</h2>
  45. <p>Do not use if there is no strong requirement. Do not use grey/black buttons, they don't work well with dark theme.</p>
  46. <button class="ui secondary button">Secondary</button>
  47. <button class="ui basic secondary button">Basic Secondary</button>
  48. <button class="ui olive button">Olive</button>
  49. <button class="ui basic olive button">Basic Olive</button>
  50. <button class="ui teal button">Teal</button>
  51. <button class="ui basic teal button">Basic Teal</button>
  52. <button class="ui violet button">Violet</button>
  53. <button class="ui basic violet button">Basic Violet</button>
  54. <button class="ui purple button">Purple</button>
  55. <button class="ui basic purple button">Basic Purple</button>
  56. <button class="ui pink button">Pink</button>
  57. <button class="ui basic pink button">Basic Pink</button>
  58. <button class="ui brown button">Brown</button>
  59. <button class="ui basic brown button">Basic Brown</button>
  60. </li>
  61. <li class="sample-group">
  62. <h2>Inline / Plain:</h2>
  63. <div class="gt-my-2">
  64. <button class="btn gt-p-3">Plain button</button>
  65. <button class="btn interact-fg gt-p-3">Plain button with interact fg</button>
  66. <button class="btn interact-bg gt-p-3">Plain button with interact bg</button>
  67. </div>
  68. </li>
  69. </ul>
  70. <script type="module">
  71. const $buttons = $('#devtest-button-samples').find('button.ui');
  72. const $buttonStyles = $('input[name*="button-style"]');
  73. $buttonStyles.on('click', () => $buttonStyles.map((_ ,el) => $buttons.toggleClass(el.value, el.checked)));
  74. const $buttonStates = $('input[name*="button-state"]');
  75. $buttonStates.on('click', () => $buttonStates.map((_ ,el) => $buttons.prop(el.value, el.checked)));
  76. </script>
  77. </div>
  78. </div>
  79. <div>
  80. <h1>Buttons</h1>
  81. <div class="ui buttons"><button class="ui button">1</button><button class="ui button">2</button><button class="ui button">3</button></div>
  82. <div class="ui buttons"><button class="ui button active">1</button><button class="ui button">2</button><button class="ui button">3</button></div>
  83. <div class="ui buttons"><button class="ui button">1</button><button class="ui button active">2</button><button class="ui button">3</button></div>
  84. <div class="ui buttons"><button class="ui button">1</button><button class="ui button">2</button><button class="ui button active">3</button></div>
  85. </div>
  86. <div>
  87. <h1>Tooltip</h1>
  88. <div><span data-tooltip-content="test tooltip">text with tooltip</span></div>
  89. <div><span data-tooltip-content="test tooltip" data-tooltip-interactive="true">text with interactive tooltip</span></div>
  90. </div>
  91. <div>
  92. <h1>Loading</h1>
  93. <div class="is-loading small-loading-icon gt-border-secondary gt-py-2"><span>loading ...</span></div>
  94. <div class="is-loading gt-border-secondary gt-py-4">
  95. <p>loading ...</p>
  96. <p>loading ...</p>
  97. <p>loading ...</p>
  98. <p>loading ...</p>
  99. </div>
  100. </div>
  101. <div>
  102. <h1>GiteaOriginUrl</h1>
  103. <div><gitea-origin-url data-url="test/url"></gitea-origin-url></div>
  104. <div><gitea-origin-url data-url="/test/url"></gitea-origin-url></div>
  105. </div>
  106. <div>
  107. <h1>GiteaAbsoluteDate</h1>
  108. <div><gitea-absolute-date date="2024-03-11" year="numeric" day="numeric" month="short"></gitea-absolute-date></div>
  109. <div><gitea-absolute-date date="2024-03-11" year="numeric" day="numeric" month="long"></gitea-absolute-date></div>
  110. <div><gitea-absolute-date date="2024-03-11" year="" day="numeric" month="numeric"></gitea-absolute-date></div>
  111. <div><gitea-absolute-date date="2024-03-11" year="" day="numeric" month="numeric" weekday="long"></gitea-absolute-date></div>
  112. <div><gitea-absolute-date date="2024-03-11T19:00:00-05:00" year="" day="numeric" month="numeric" weekday="long"></gitea-absolute-date></div>
  113. <div class="tw-text-text-light-2">relative-time: <relative-time format="datetime" datetime="2024-03-11" year="" day="numeric" month="numeric"></relative-time></div>
  114. </div>
  115. <div>
  116. <h1>LocaleNumber</h1>
  117. <div>{{ctx.Locale.PrettyNumber 1}}</div>
  118. <div>{{ctx.Locale.PrettyNumber 12}}</div>
  119. <div>{{ctx.Locale.PrettyNumber 123}}</div>
  120. <div>{{ctx.Locale.PrettyNumber 1234}}</div>
  121. <div>{{ctx.Locale.PrettyNumber 12345}}</div>
  122. <div>{{ctx.Locale.PrettyNumber 123456}}</div>
  123. <div>{{ctx.Locale.PrettyNumber 1234567}}</div>
  124. </div>
  125. <div>
  126. <h1>TimeSince</h1>
  127. <div>Now: {{TimeSince .TimeNow ctx.Locale}}</div>
  128. <div>5s past: {{TimeSince .TimePast5s ctx.Locale}}</div>
  129. <div>5s future: {{TimeSince .TimeFuture5s ctx.Locale}}</div>
  130. <div>2m past: {{TimeSince .TimePast2m ctx.Locale}}</div>
  131. <div>2m future: {{TimeSince .TimeFuture2m ctx.Locale}}</div>
  132. <div>1y past: {{TimeSince .TimePast1y ctx.Locale}}</div>
  133. <div>1y future: {{TimeSince .TimeFuture1y ctx.Locale}}</div>
  134. </div>
  135. <div>
  136. <h1>SVG alignment</h1>
  137. <h2>Text with SVG</h2>
  138. <div class="flex-text-block">{{svg "octicon-alert"}} {{svg "octicon-x"}} text (block)</div>
  139. <div><div class="flex-text-inline">{{svg "octicon-alert"}} {{svg "octicon-x"}} text</div> (inline)</div>
  140. <div class="flex-text-block">{{svg "octicon-alert"}} flex item with very very very very very very very very long content</div>
  141. <div class="flex-items-block">
  142. <div class="item">{{svg "octicon-alert"}} flex every line</div>
  143. <div class="item">{{svg "octicon-alert"}} flex every item</div>
  144. <div class="item">{{svg "octicon-alert"}} flex item with very very very very very very very very long content</div>
  145. </div>
  146. <h2>Button with SVG</h2>
  147. <div>
  148. <button class="ui red button">{{svg "octicon-alert" 24}} {{svg "octicon-x" 24}} text</button>
  149. <div class="ui labeled button">
  150. <button class="ui basic button">labeled button</button>
  151. <a class="ui basic label">123</a>
  152. </div>
  153. <button class="ui yellow button">{{svg "octicon-x" 16}} button with very very very very very very very very long text</button>
  154. </div>
  155. <h2>Input with SVG</h2>
  156. <div>
  157. <div class="ui icon search input">
  158. <i class="icon">{{svg "octicon-search"}}</i>
  159. <input type="text" placeholder="place holder">
  160. </div>
  161. </div>
  162. <h2>Dropdown with SVG</h2>
  163. <div>
  164. <div class="ui dropdown" style="border: 1px red dashed" data-tooltip-content="border for demo purpose only">
  165. <span class="text">simple</span>
  166. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  167. <div class="menu">
  168. <div class="ui icon search input"><i class="icon">{{svg "octicon-search"}}</i><input type="text" value="search input in menu"></div>
  169. <div class="item">item</div>
  170. </div>
  171. </div>
  172. <div class="ui search selection dropdown">
  173. <span class="text">search ...</span>
  174. <input name="value" class="search">
  175. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  176. {{svg "octicon-x" 14 "remove icon"}}
  177. <div class="menu">
  178. <div class="item">item</div>
  179. </div>
  180. </div>
  181. <div class="ui multiple selection dropdown">
  182. <input class="hidden" value="1">
  183. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  184. {{svg "octicon-x" 14 "remove icon"}}
  185. <div class="default text">empty multiple dropdown</div>
  186. <div class="menu">
  187. <div class="item">item</div>
  188. </div>
  189. </div>
  190. <div class="ui multiple clearable search selection dropdown">
  191. <input type="hidden" value="1">
  192. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  193. {{svg "octicon-x" 14 "remove icon"}}
  194. <div class="default text">clearable search dropdown</div>
  195. <div class="menu">
  196. <div class="item" data-value="1">item</div>
  197. </div>
  198. </div>
  199. <div class="ui buttons">
  200. <button class="ui button">Button with Dropdown</button>
  201. <div class="ui dropdown button icon">
  202. {{svg "octicon-triangle-down"}}
  203. <div class="menu">
  204. <div class="item">item</div>
  205. </div>
  206. </div>
  207. </div>
  208. </div>
  209. <div>
  210. <div class="ui dropdown mini button">
  211. <span class="text">mini dropdown</span>
  212. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  213. </div>
  214. <div class="ui dropdown tiny button">
  215. <span class="text">tiny dropdown</span>
  216. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  217. </div>
  218. <div class="ui button dropdown">
  219. <span class="text">button dropdown</span>
  220. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  221. </div>
  222. <div class="ui dropdown large button">
  223. <span class="text">large dropdown</span>
  224. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  225. </div>
  226. </div>
  227. <div>
  228. <div class="ui dropdown mini compact button">
  229. <span class="text">mini compact</span>
  230. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  231. </div>
  232. <div class="ui dropdown tiny compact button">
  233. <span class="text">tiny compact</span>
  234. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  235. </div>
  236. <div class="ui button compact dropdown">
  237. <span class="text">button compact</span>
  238. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  239. </div>
  240. <div class="ui dropdown large compact button">
  241. <span class="text">large compact</span>
  242. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  243. </div>
  244. </div>
  245. <div>
  246. <hr>
  247. <div class="ui tiny button">Button align with ...</div>
  248. <div class="ui dropdown tiny button">
  249. <span class="text">... Dropdown Button</span>
  250. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  251. </div>
  252. </div>
  253. </div>
  254. <div>
  255. <h1>Toast</h1>
  256. <div>
  257. <button class="ui button" id="info-toast">Show Info Toast</button>
  258. <button class="ui button" id="warning-toast">Show Warning Toast</button>
  259. <button class="ui button" id="error-toast">Show Error Toast</button>
  260. </div>
  261. </div>
  262. <div>
  263. <h1>ComboMarkdownEditor</h1>
  264. <div>ps: no JS code attached, so just a layout</div>
  265. {{template "shared/combomarkdowneditor" .}}
  266. </div>
  267. <script src="{{AssetUrlPrefix}}/js/devtest.js?v={{AssetVersion}}"></script>
  268. </div>
  269. {{template "base/footer" .}}