loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Replace 10 more gt- classes with tw- (#29945)

Likely the biggest change of the tailwind refactors. Only thing of note
is that `tw-flex-1` resolves to `flex: 1 1 0%` while our `gt-f1` was
`flex: 1 1 0`, I don't think it will make any difference. Commands I've
ran:

```sh
perl -p -i -e 's#gt-vm#tw-align-middle#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-fw#tw-flex-wrap#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-f1#tw-flex-1#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-fc#tw-flex-col#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-sb#tw-justify-between#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-je#tw-justify-end#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-jc#tw-justify-center#g' web_src/js/**/* templates/**/* models/**/*
perl -p -i -e 's#gt-ac#tw-content-center#g' web_src/js/**/* templates/**/* models/**/* tests/**/*
perl -p -i -e 's#gt-df#tw-flex#g' web_src/js/**/* templates/**/* models/**/* tests/**/*
perl -p -i -e 's#gt-dib#tw-inline-block#g' web_src/js/**/* templates/**/* models/**/* tests/**/*

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
(cherry picked from commit f88ad5424f381bf2a45fd863b551c5a72891bb68)

Conflicts:
templates/repo/diff/conversation.tmpl
templates/repo/header.tmpl
templates/repo/issue/filter_actions.tmpl
templates/repo/issue/filter_list.tmpl
templates/repo/issue/view_content/conversation.tmpl
templates/repo/release/list.tmpl
templates/repo/wiki/view.tmpl
web_src/js/components/DashboardRepoList.vue
discard the proposed changes and prefer Forgejo. A followup
commit will apply the same commands.

authored by

silverwind
wxiaoguang
and committed by
Earl Warren
2befd9a3 44bc7b99

+276 -290
+1 -1
docs/content/contributing/guidelines-frontend.en-us.md
··· 47 47 9. Avoid unnecessary `!important` in CSS, add comments to explain why it's necessary if it can't be avoided. 48 48 10. Avoid mixing different events in one event listener, prefer to use individual event listeners for every event. 49 49 11. Custom event names are recommended to use `ce-` prefix. 50 - 12. Prefer using Tailwind CSS which is available via `tw-` prefix, e.g. `tw-relative`. Gitea's helper CSS classes use `gt-` prefix (`gt-df`), while Gitea's own private framework-level CSS classes use `g-` prefix (`g-modal-confirm`). 50 + 12. Prefer using Tailwind CSS which is available via `tw-` prefix, e.g. `tw-relative`. Gitea's helper CSS classes use `gt-` prefix (`gt-mono`), while Gitea's own private framework-level CSS classes use `g-` prefix (`g-modal-confirm`). 51 51 13. Avoid inline scripts & styles as much as possible, it's recommended to put JS code into JS files and use CSS classes. If inline scripts & styles are unavoidable, explain the reason why it can't be avoided. 52 52 53 53 ### Accessibility / ARIA
+1 -1
docs/content/contributing/guidelines-frontend.zh-cn.md
··· 47 47 9. 避免在 CSS 中使用不必要的`!important`,如果无法避免,添加注释解释为什么需要它。 48 48 10. 避免在一个事件监听器中混合不同的事件,优先为每个事件使用独立的事件监听器。 49 49 11. 推荐使用自定义事件名称前缀`ce-`。 50 - 12. 建议使用 Tailwind CSS,它可以通过 `tw-` 前缀获得,例如 `tw-relative`. Gitea 自身的助手类 CSS 使用 `gt-` 前缀(`gt-df`),Gitea 自身的私有框架级 CSS 类使用 `g-` 前缀(`g-modal-confirm`)。 50 + 12. 建议使用 Tailwind CSS,它可以通过 `tw-` 前缀获得,例如 `tw-relative`. Gitea 自身的助手类 CSS 使用 `gt-` 前缀(`gt-mono`),Gitea 自身的私有框架级 CSS 类使用 `g-` 前缀(`g-modal-confirm`)。 51 51 13. 尽量避免内联脚本和样式,建议将JS代码放入JS文件中并使用CSS类。如果内联脚本和样式不可避免,请解释无法避免的原因。 52 52 53 53 ### 可访问性 / ARIA
+1 -1
models/avatars/avatar.go
··· 24 24 25 25 const ( 26 26 // DefaultAvatarClass is the default class of a rendered avatar 27 - DefaultAvatarClass = "ui avatar gt-vm" 27 + DefaultAvatarClass = "ui avatar tw-align-middle" 28 28 // DefaultAvatarPixelSize is the default size in pixels of a rendered avatar 29 29 DefaultAvatarPixelSize = 28 30 30 )
+2 -2
templates/admin/emails/list.tmpl
··· 4 4 {{ctx.Locale.Tr "admin.emails.email_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}}) 5 5 </h4> 6 6 <div class="ui attached segment"> 7 - <div class="ui secondary filter menu gt-ac gt-mx-0"> 8 - <form class="ui form ignore-dirty gt-f1"> 7 + <div class="ui secondary filter menu tw-content-center gt-mx-0"> 8 + <form class="ui form ignore-dirty tw-flex-1"> 9 9 {{template "shared/search/combo" dict "Value" .Keyword}} 10 10 </form> 11 11 <!-- Sort -->
+1 -1
templates/admin/notice.tmpl
··· 17 17 <tbody> 18 18 {{range .Notices}} 19 19 <tr> 20 - <td><div class="ui checkbox gt-df" data-id="{{.ID}}"><input type="checkbox"></div></td> 20 + <td><div class="ui checkbox tw-flex" data-id="{{.ID}}"><input type="checkbox"></div></td> 21 21 <td>{{.ID}}</td> 22 22 <td>{{ctx.Locale.Tr .TrStr}}</td> 23 23 <td class="view-detail auto-ellipsis" style="width: 80%;"><span class="notice-description">{{.Description}}</span></td>
+2 -2
templates/admin/org/list.tmpl
··· 7 7 </div> 8 8 </h4> 9 9 <div class="ui attached segment"> 10 - <div class="ui secondary filter menu gt-ac gt-mx-0"> 11 - <form class="ui form ignore-dirty gt-f1"> 10 + <div class="ui secondary filter menu tw-content-center gt-mx-0"> 11 + <form class="ui form ignore-dirty tw-flex-1"> 12 12 {{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.org_kind")}} 13 13 </form> 14 14 <!-- Sort -->
+1 -1
templates/admin/queue_manage.tmpl
··· 30 30 - 31 31 {{else}} 32 32 {{$sum}} 33 - <form action="{{$.Link}}/remove-all-items" method="post" class="gt-dib gt-ml-4"> 33 + <form action="{{$.Link}}/remove-all-items" method="post" class="tw-inline-block gt-ml-4"> 34 34 {{$.CsrfTokenHtml}} 35 35 <button class="ui tiny basic red button">{{ctx.Locale.Tr "admin.monitor.queue.settings.remove_all_items"}}</button> 36 36 </form>
+2 -2
templates/admin/repo/unadopted.tmpl
··· 20 20 {{if .Dirs}} 21 21 <div class="ui aligned divided list"> 22 22 {{range $dirI, $dir := .Dirs}} 23 - <div class="item gt-df gt-ac"> 24 - <span class="gt-f1"> {{svg "octicon-file-directory-fill"}} {{$dir}}</span> 23 + <div class="item tw-flex tw-content-center"> 24 + <span class="tw-flex-1"> {{svg "octicon-file-directory-fill"}} {{$dir}}</span> 25 25 <div> 26 26 <button class="ui button primary show-modal gt-p-3" data-modal="#adopt-unadopted-modal-{{$dirI}}">{{svg "octicon-plus"}} {{ctx.Locale.Tr "repo.adopt_preexisting_label"}}</button> 27 27 <div class="ui g-modal-confirm modal" id="adopt-unadopted-modal-{{$dirI}}">
+4 -4
templates/admin/stacktrace-row.tmpl
··· 1 1 <div class="item"> 2 - <div class="gt-df gt-ac"> 2 + <div class="tw-flex tw-content-center"> 3 3 <div class="icon gt-ml-3 gt-mr-3"> 4 4 {{if eq .Process.Type "request"}} 5 5 {{svg "octicon-globe" 16}} ··· 11 11 {{svg "octicon-code" 16}} 12 12 {{end}} 13 13 </div> 14 - <div class="content gt-f1"> 14 + <div class="content tw-flex-1"> 15 15 <div class="header">{{.Process.Description}}</div> 16 16 <div class="description">{{if ne .Process.Type "none"}}{{TimeSince .Process.Start ctx.Locale}}{{end}}</div> 17 17 </div> ··· 40 40 </summary> 41 41 <div class="list"> 42 42 {{range .Entry}} 43 - <div class="item gt-df gt-ac"> 43 + <div class="item tw-flex tw-content-center"> 44 44 <span class="icon gt-mr-4">{{svg "octicon-dot-fill" 16}}</span> 45 - <div class="content gt-f1"> 45 + <div class="content tw-flex-1"> 46 46 <div class="header"><code>{{.Function}}</code></div> 47 47 <div class="description"><code>{{.File}}:{{.Line}}</code></div> 48 48 </div>
+2 -2
templates/admin/stacktrace.tmpl
··· 1 1 {{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}} 2 2 <div class="admin-setting-content"> 3 3 4 - <div class="gt-df gt-ac"> 5 - <div class="gt-f1"> 4 + <div class="tw-flex tw-content-center"> 5 + <div class="tw-flex-1"> 6 6 <div class="ui compact small menu"> 7 7 <a class="{{if eq .ShowGoroutineList "process"}}active {{end}}item" href="?show=process">{{ctx.Locale.Tr "admin.monitor.process"}}</a> 8 8 <a class="{{if eq .ShowGoroutineList "stacktrace"}}active {{end}}item" href="?show=stacktrace">{{ctx.Locale.Tr "admin.monitor.stacktrace"}}</a>
+1 -1
templates/admin/user/list.tmpl
··· 103 103 <td><span>{{ctx.Locale.Tr "admin.users.never_login"}}</span></td> 104 104 {{end}} 105 105 <td> 106 - <div class="gt-df gt-gap-3"> 106 + <div class="tw-flex gt-gap-3"> 107 107 <a href="{{$.Link}}/{{.ID}}" data-tooltip-content="{{ctx.Locale.Tr "admin.users.details"}}">{{svg "octicon-person"}}</a> 108 108 <a href="{{$.Link}}/{{.ID}}/edit" data-tooltip-content="{{ctx.Locale.Tr "edit"}}">{{svg "octicon-pencil"}}</a> 109 109 </div>
+2 -2
templates/admin/user/view.tmpl
··· 2 2 3 3 <div class="admin-setting-content"> 4 4 <div class="admin-responsive-columns"> 5 - <div class="gt-f1"> 5 + <div class="tw-flex-1"> 6 6 <h4 class="ui top attached header"> 7 7 {{.Title}} 8 8 <div class="ui right"> ··· 13 13 {{template "admin/user/view_details" .}} 14 14 </div> 15 15 </div> 16 - <div class="gt-f1"> 16 + <div class="tw-flex-1"> 17 17 <h4 class="ui top attached header"> 18 18 {{ctx.Locale.Tr "admin.emails"}} 19 19 <div class="ui right">
+4 -4
templates/base/head_navbar.tmpl
··· 56 56 <div class="navbar-right ui secondary menu"> 57 57 {{if and .IsSigned .MustChangePassword}} 58 58 <div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}"> 59 - <span class="text gt-df gt-ac"> 59 + <span class="text tw-flex tw-content-center"> 60 60 {{ctx.AvatarUtils.Avatar .SignedUser 24 "gt-mr-2"}} 61 61 <span class="mobile-only gt-ml-3">{{.SignedUser.Name}}</span> 62 62 <span class="not-mobile">{{svg "octicon-triangle-down"}}</span> ··· 83 83 <span class="mobile-only gt-ml-3">{{ctx.Locale.Tr "active_stopwatch"}}</span> 84 84 </a> 85 85 <div class="active-stopwatch-popup item tippy-target gt-p-3"> 86 - <div class="gt-df gt-ac"> 87 - <a class="stopwatch-link gt-df gt-ac" href="{{.ActiveStopwatch.IssueLink}}"> 86 + <div class="tw-flex tw-content-center"> 87 + <a class="stopwatch-link tw-flex tw-content-center" href="{{.ActiveStopwatch.IssueLink}}"> 88 88 {{svg "octicon-issue-opened" 16 "gt-mr-3"}} 89 89 <span class="stopwatch-issue">{{.ActiveStopwatch.RepoSlug}}#{{.ActiveStopwatch.IssueIndex}}</span> 90 90 <span class="ui primary label stopwatch-time gt-my-0 gt-mx-4" data-seconds="{{.ActiveStopwatch.Seconds}}"> ··· 142 142 </div><!-- end dropdown menu create new --> 143 143 144 144 <div class="ui dropdown jump item gt-mx-0 gt-pr-3" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}"> 145 - <span class="text gt-df gt-ac"> 145 + <span class="text tw-flex tw-content-center"> 146 146 {{ctx.AvatarUtils.Avatar .SignedUser 24 "gt-mr-2"}} 147 147 <span class="mobile-only gt-ml-3">{{.SignedUser.Name}}</span> 148 148 <span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
+1 -1
templates/devtest/fomantic-modal.tmpl
··· 73 73 {{template "base/modal_actions_confirm" (dict "ModalButtonDangerText" "I know and must do this is dangerous operation")}} 74 74 </div> 75 75 76 - <div class="modal-buttons flex-text-block gt-fw"></div> 76 + <div class="modal-buttons flex-text-block tw-flex-wrap"></div> 77 77 <script type="module"> 78 78 for (const el of $('.ui.modal')) { 79 79 const $btn = $('<button>').text(`${el.id}`).on('click', () => {
+1 -1
templates/devtest/tmplerr.tmpl
··· 1 1 {{template "base/head" .}} 2 2 <div class="page-content devtest"> 3 - <div class="gt-df"> 3 + <div class="tw-flex"> 4 4 <div style="width: 80%; "> 5 5 hello hello hello hello hello hello hello hello hello hello 6 6 </div>
+2 -2
templates/explore/search.tmpl
··· 1 - <div class="ui small secondary filter menu gt-ac gt-mx-0"> 2 - <form class="ui form ignore-dirty gt-f1"> 1 + <div class="ui small secondary filter menu tw-content-center gt-mx-0"> 2 + <form class="ui form ignore-dirty tw-flex-1"> 3 3 {{if .PageIsExploreUsers}} 4 4 {{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.user_kind")}} 5 5 {{else}}
+1 -1
templates/explore/user_list.tmpl
··· 1 1 <div class="flex-list"> 2 2 {{range .Users}} 3 - <div class="flex-item gt-ac"> 3 + <div class="flex-item tw-content-center"> 4 4 <div class="flex-item-leading"> 5 5 {{ctx.AvatarUtils.Avatar . 48}} 6 6 </div>
+3 -3
templates/org/header.tmpl
··· 1 - <div class="ui container gt-df"> 1 + <div class="ui container tw-flex"> 2 2 {{ctx.AvatarUtils.Avatar .Org 100 "org-avatar"}} 3 - <div id="org-info" class="gt-df gt-fc"> 3 + <div id="org-info" class="tw-flex tw-flex-col"> 4 4 <div class="ui header"> 5 5 {{.Org.DisplayName}} 6 6 <span class="org-visibility"> 7 7 {{if .Org.Visibility.IsLimited}}<span class="ui large basic horizontal label">{{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}}</span>{{end}} 8 8 {{if .Org.Visibility.IsPrivate}}<span class="ui large basic horizontal label">{{ctx.Locale.Tr "org.settings.visibility.private_shortname"}}</span>{{end}} 9 9 </span> 10 - <span class="gt-df gt-ac gt-gap-2 tw-ml-auto gt-font-16 tw-whitespace-nowrap"> 10 + <span class="tw-flex tw-content-center gt-gap-2 tw-ml-auto gt-font-16 tw-whitespace-nowrap"> 11 11 {{if .EnableFeed}} 12 12 <a class="ui basic label button gt-mr-0" href="{{.Org.HomeLink}}.rss" data-tooltip-content="{{ctx.Locale.Tr "rss_feed"}}"> 13 13 {{svg "octicon-rss" 24}}
+6 -6
templates/org/home.tmpl
··· 30 30 <div class="divider"></div> 31 31 {{end}} 32 32 {{if .NumMembers}} 33 - <h4 class="ui top attached header gt-df"> 34 - <strong class="gt-f1">{{ctx.Locale.Tr "org.members"}}</strong> 35 - <a class="text grey gt-df gt-ac" href="{{.OrgLink}}/members"><span>{{.NumMembers}}</span> {{svg "octicon-chevron-right"}}</a> 33 + <h4 class="ui top attached header tw-flex"> 34 + <strong class="tw-flex-1">{{ctx.Locale.Tr "org.members"}}</strong> 35 + <a class="text grey tw-flex tw-content-center" href="{{.OrgLink}}/members"><span>{{.NumMembers}}</span> {{svg "octicon-chevron-right"}}</a> 36 36 </h4> 37 37 <div class="ui attached segment members"> 38 38 {{$isMember := .IsOrganizationMember}} ··· 44 44 </div> 45 45 {{end}} 46 46 {{if .IsOrganizationMember}} 47 - <div class="ui top attached header gt-df"> 48 - <strong class="gt-f1">{{ctx.Locale.Tr "org.teams"}}</strong> 49 - <a class="text grey gt-df gt-ac" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right"}}</a> 47 + <div class="ui top attached header tw-flex"> 48 + <strong class="tw-flex-1">{{ctx.Locale.Tr "org.teams"}}</strong> 49 + <a class="text grey tw-flex tw-content-center" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right"}}</a> 50 50 </div> 51 51 <div class="ui attached table segment teams"> 52 52 {{range .Teams}}
+1 -1
templates/org/member/members.tmpl
··· 7 7 <div class="flex-list"> 8 8 {{range .Members}} 9 9 {{$isPublic := index $.MembersIsPublicMember .ID}} 10 - <div class="flex-item {{if $.PublicOnly}}gt-ac{{end}}"> 10 + <div class="flex-item {{if $.PublicOnly}}tw-content-center{{end}}"> 11 11 <div class="flex-item-leading"> 12 12 <a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 48}}</a> 13 13 </div>
+2 -2
templates/org/settings/labels.tmpl
··· 1 1 {{template "org/settings/layout_head" (dict "ctxData" . "pageClass" "organization settings labels")}} 2 2 <div class="org-setting-content"> 3 - <div class="gt-df gt-ac"> 4 - <div class="gt-f1"> 3 + <div class="tw-flex tw-content-center"> 4 + <div class="tw-flex-1"> 5 5 {{ctx.Locale.Tr "org.settings.labels_desc"}} 6 6 </div> 7 7 <button class="ui small primary new-label button">{{ctx.Locale.Tr "repo.issues.new_label"}}</button>
+3 -3
templates/org/team/members.tmpl
··· 9 9 {{template "org/team/navbar" .}} 10 10 {{if .IsOrganizationOwner}} 11 11 <div class="ui attached segment"> 12 - <form class="ui form ignore-dirty gt-df gt-fw gt-gap-3" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/add" method="post"> 12 + <form class="ui form ignore-dirty tw-flex tw-flex-wrap gt-gap-3" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/add" method="post"> 13 13 {{.CsrfTokenHtml}} 14 14 <input type="hidden" name="uid" value="{{.SignedUser.ID}}"> 15 15 <div id="search-user-box" class="ui search gt-mr-3"{{if .IsEmailInviteEnabled}} data-allow-email="true" data-allow-email-description="{{ctx.Locale.Tr "org.teams.invite_team_member" $.Team.Name}}"{{end}}> ··· 24 24 <div class="ui attached segment"> 25 25 <div class="flex-list"> 26 26 {{range .Team.Members}} 27 - <div class="flex-item gt-ac"> 27 + <div class="flex-item tw-content-center"> 28 28 <div class="flex-item-leading"> 29 29 <a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 32}}</a> 30 30 </div> ··· 56 56 <div class="ui attached segment"> 57 57 <div class="flex-list"> 58 58 {{range .Invites}} 59 - <div class="flex-item gt-ac"> 59 + <div class="flex-item tw-content-center"> 60 60 <div class="flex-item-main"> 61 61 {{.Email}} 62 62 </div>
+3 -3
templates/org/team/new.tmpl
··· 78 78 <tr> 79 79 <th>{{ctx.Locale.Tr "units.unit"}}</th> 80 80 <th class="center aligned">{{ctx.Locale.Tr "org.teams.none_access"}} 81 - <span class="gt-vm" data-tooltip-content="{{ctx.Locale.Tr "org.teams.none_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 81 + <span class="tw-align-middle" data-tooltip-content="{{ctx.Locale.Tr "org.teams.none_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 82 82 <th class="center aligned">{{ctx.Locale.Tr "org.teams.read_access"}} 83 - <span class="gt-vm" data-tooltip-content="{{ctx.Locale.Tr "org.teams.read_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 83 + <span class="tw-align-middle" data-tooltip-content="{{ctx.Locale.Tr "org.teams.read_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 84 84 <th class="center aligned">{{ctx.Locale.Tr "org.teams.write_access"}} 85 - <span class="gt-vm" data-tooltip-content="{{ctx.Locale.Tr "org.teams.write_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 85 + <span class="tw-align-middle" data-tooltip-content="{{ctx.Locale.Tr "org.teams.write_access_helper"}}">{{svg "octicon-question" 16 "gt-ml-2"}}</span></th> 86 86 </tr> 87 87 </thead> 88 88 <tbody>
+4 -4
templates/org/team/repositories.tmpl
··· 9 9 {{template "org/team/navbar" .}} 10 10 {{$canAddRemove := and $.IsOrganizationOwner (not $.Team.IncludesAllRepositories)}} 11 11 {{if $canAddRemove}} 12 - <div class="ui attached segment gt-df gt-fw gt-gap-3"> 13 - <form class="ui form ignore-dirty gt-f1 gt-df" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/add" method="post"> 12 + <div class="ui attached segment tw-flex tw-flex-wrap gt-gap-3"> 13 + <form class="ui form ignore-dirty tw-flex-1 tw-flex" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/add" method="post"> 14 14 {{.CsrfTokenHtml}} 15 15 <div id="search-repo-box" data-uid="{{.Org.ID}}" class="ui search"> 16 16 <div class="ui input"> ··· 19 19 </div> 20 20 <button class="ui primary button gt-ml-3">{{ctx.Locale.Tr "add"}}</button> 21 21 </form> 22 - <div class="gt-dib"> 22 + <div class="tw-inline-block"> 23 23 <button class="ui primary button link-action" data-modal-confirm="{{ctx.Locale.Tr "org.teams.add_all_repos_desc"}}" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/addall">{{ctx.Locale.Tr "add_all"}}</button> 24 24 <button class="ui red button link-action" data-modal-confirm="{{ctx.Locale.Tr "org.teams.remove_all_repos_desc"}}" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/removeall">{{ctx.Locale.Tr "remove_all"}}</button> 25 25 </div> ··· 28 28 <div class="ui attached segment"> 29 29 <div class="flex-list"> 30 30 {{range .Team.Repos}} 31 - <div class="flex-item gt-ac"> 31 + <div class="flex-item tw-content-center"> 32 32 <div class="flex-item-leading"> 33 33 {{template "repo/icon" .}} 34 34 </div>
+2 -2
templates/package/view.tmpl
··· 90 90 <a class="tw-float-right" href="{{$.PackageDescriptor.PackageWebLink}}/versions">{{ctx.Locale.Tr "packages.versions.view_all"}}</a> 91 91 <div class="ui relaxed list"> 92 92 {{range .LatestVersions}} 93 - <div class="item gt-df"> 94 - <a class="gt-f1 gt-ellipsis" title="{{.Version}}" href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .LowerVersion}}">{{.Version}}</a> 93 + <div class="item tw-flex"> 94 + <a class="tw-flex-1 gt-ellipsis" title="{{.Version}}" href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .LowerVersion}}">{{.Version}}</a> 95 95 <span class="text small">{{DateTime "short" .CreatedUnix}}</span> 96 96 </div> 97 97 {{end}}
+1 -1
templates/projects/list.tmpl
··· 1 1 {{if and $.CanWriteProjects (not $.Repository.IsArchived)}} 2 - <div class="gt-df gt-sb gt-mb-4"> 2 + <div class="tw-flex tw-justify-between gt-mb-4"> 3 3 <div class="small-menu-items ui compact tiny menu list-header-toggle"> 4 4 <a class="item{{if not .IsShowClosed}} active{{end}}" href="?state=open&q={{$.Keyword}}"> 5 5 {{svg "octicon-project-symlink" 16 "gt-mr-3"}}
+1 -1
templates/projects/view.tmpl
··· 1 1 {{$canWriteProject := and .CanWriteProjects (or (not .Repository) (not .Repository.IsArchived))}} 2 2 3 3 <div class="ui container"> 4 - <div class="gt-df gt-sb gt-ac gt-mb-4"> 4 + <div class="tw-flex tw-justify-between tw-content-center gt-mb-4"> 5 5 <h2 class="gt-mb-0">{{.Project.Title}}</h2> 6 6 {{if $canWriteProject}} 7 7 <div class="ui compact mini menu">
+1 -1
templates/repo/actions/list.tmpl
··· 25 25 </div> 26 26 </div> 27 27 <div class="twelve wide column content"> 28 - <div class="ui secondary filter menu gt-je gt-df gt-ac"> 28 + <div class="ui secondary filter menu tw-justify-end tw-flex tw-content-center"> 29 29 <!-- Actor --> 30 30 <div class="ui{{if not .Actors}} disabled{{end}} dropdown jump item"> 31 31 <span class="text">{{ctx.Locale.Tr "actions.runs.actor"}}</span>
+1 -1
templates/repo/actions/runs_list.tmpl
··· 6 6 </div> 7 7 {{end}} 8 8 {{range .Runs}} 9 - <div class="flex-item gt-ac"> 9 + <div class="flex-item tw-content-center"> 10 10 <div class="flex-item-leading"> 11 11 {{template "repo/actions/status" (dict "status" .Status.String)}} 12 12 </div>
+1 -1
templates/repo/actions/status.tmpl
··· 12 12 {{- $className = .className -}} 13 13 {{- end -}} 14 14 15 - <span class="gt-df gt-ac" data-tooltip-content="{{ctx.Locale.Tr (printf "actions.status.%s" .status)}}"> 15 + <span class="tw-flex tw-content-center" data-tooltip-content="{{ctx.Locale.Tr (printf "actions.status.%s" .status)}}"> 16 16 {{if eq .status "success"}} 17 17 {{svg "octicon-check-circle-fill" $size (printf "text green %s" $className)}} 18 18 {{else if eq .status "skipped"}}
+3 -3
templates/repo/blame.tmpl
··· 11 11 {{end}} 12 12 {{end}} 13 13 <div class="{{TabSizeClass .Editorconfig .FileName}} non-diff-file-content"> 14 - <h4 class="file-header ui top attached header gt-df gt-ac gt-sb gt-fw"> 15 - <div class="file-header-left gt-df gt-ac gt-py-3 gt-pr-4"> 14 + <h4 class="file-header ui top attached header tw-flex tw-content-center tw-justify-between tw-flex-wrap"> 15 + <div class="file-header-left tw-flex tw-content-center gt-py-3 gt-pr-4"> 16 16 {{template "repo/file_info" .}} 17 17 </div> 18 - <div class="file-header-right file-actions gt-df gt-ac gt-fw"> 18 + <div class="file-header-right file-actions tw-flex tw-content-center tw-flex-wrap"> 19 19 <div class="ui buttons"> 20 20 <a class="ui tiny button" href="{{$.RawFileLink}}">{{ctx.Locale.Tr "repo.file_raw"}}</a> 21 21 {{if not .IsViewCommit}}
+5 -5
templates/repo/branch/list.tmpl
··· 25 25 <button class="btn interact-fg gt-px-2" data-clipboard-text="{{.DefaultBranchBranch.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button> 26 26 {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID)}} 27 27 </div> 28 - <p class="info gt-df gt-ac gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{.RepoLink}}/commit/{{PathEscape .DefaultBranchBranch.DBBranch.CommitID}}">{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DefaultBranchBranch.DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DefaultBranchBranch.DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}</p> 28 + <p class="info tw-flex tw-content-center gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{.RepoLink}}/commit/{{PathEscape .DefaultBranchBranch.DBBranch.CommitID}}">{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DefaultBranchBranch.DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DefaultBranchBranch.DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}</p> 29 29 </td> 30 30 <td class="right aligned middle aligned overflow-visible"> 31 31 {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}} ··· 67 67 </div> 68 68 {{end}} 69 69 70 - <h4 class="ui top attached header gt-df gt-ac gt-sb"> 71 - <div class="gt-df gt-ac"> 70 + <h4 class="ui top attached header tw-flex tw-content-center tw-justify-between"> 71 + <div class="tw-flex tw-content-center"> 72 72 {{ctx.Locale.Tr "repo.branches"}} 73 73 </div> 74 74 </h4> ··· 98 98 <button class="btn interact-fg gt-px-2" data-clipboard-text="{{.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button> 99 99 {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DBBranch.CommitID)}} 100 100 </div> 101 - <p class="info gt-df gt-ac gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{$.RepoLink}}/commit/{{PathEscape .DBBranch.CommitID}}">{{ShortSha .DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}} &nbsp;{{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}</p> 101 + <p class="info tw-flex tw-content-center gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{$.RepoLink}}/commit/{{PathEscape .DBBranch.CommitID}}">{{ShortSha .DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}} &nbsp;{{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}</p> 102 102 {{end}} 103 103 </td> 104 104 <td class="two wide ui"> ··· 134 134 </a> 135 135 {{end}} 136 136 {{else}} 137 - <a href="{{.LatestPullRequest.Issue.Link}}" class="gt-vm ref-issue">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a> 137 + <a href="{{.LatestPullRequest.Issue.Link}}" class="tw-align-middle ref-issue">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a> 138 138 {{if .LatestPullRequest.HasMerged}} 139 139 <a href="{{.LatestPullRequest.Issue.Link}}" class="ui purple large label">{{svg "octicon-git-merge" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.pulls.merged"}}</a> 140 140 {{else if .LatestPullRequest.Issue.IsClosed}}
+2 -2
templates/repo/branch_dropdown.tmpl
··· 70 70 <div class="js-branch-tag-selector {{if .ContainerClasses}}{{.ContainerClasses}}{{end}}"> 71 71 {{/* show dummy elements before Vue componment is mounted, this code must match the code in BranchTagSelector.vue */}} 72 72 <div class="ui dropdown custom"> 73 - <button class="branch-dropdown-button gt-ellipsis ui basic small compact button gt-df gt-m-0"> 74 - <span class="text gt-df gt-ac gt-mr-2"> 73 + <button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex gt-m-0"> 74 + <span class="text tw-flex tw-content-center gt-mr-2"> 75 75 {{if .release}} 76 76 {{ctx.Locale.Tr "repo.release.compare"}} 77 77 {{else}}
+2 -2
templates/repo/code/recently_pushed_new_branches.tmpl
··· 1 1 {{range .RecentlyPushedNewBranches}} 2 - <div class="ui positive message gt-df gt-ac"> 3 - <div class="gt-f1"> 2 + <div class="ui positive message tw-flex tw-content-center"> 3 + <div class="tw-flex-1"> 4 4 {{$timeSince := TimeSince .CommitTime.AsTime ctx.Locale}} 5 5 {{$repo := .GetRepo $.Context}} 6 6 {{$name := .Name}}
+4 -4
templates/repo/commit_load_branches_and_tags.tmpl
··· 7 7 <div class="branch-and-tag-detail gt-hidden"> 8 8 <div class="divider"></div> 9 9 <div>{{ctx.Locale.Tr "repo.commit.contained_in"}}</div> 10 - <div class="gt-df gt-mt-3"> 10 + <div class="tw-flex gt-mt-3"> 11 11 <div class="gt-p-2">{{svg "octicon-git-branch"}}</div> 12 - <div class="branch-area flex-text-block gt-fw gt-f1"></div> 12 + <div class="branch-area flex-text-block tw-flex-wrap tw-flex-1"></div> 13 13 </div> 14 - <div class="gt-df gt-mt-3"> 14 + <div class="tw-flex gt-mt-3"> 15 15 <div class="gt-p-2">{{svg "octicon-tag"}}</div> 16 - <div class="tag-area flex-text-block gt-fw gt-f1"></div> 16 + <div class="tag-area flex-text-block tw-flex-wrap tw-flex-1"></div> 17 17 </div> 18 18 </div> 19 19 </div>
+8 -8
templates/repo/commit_page.tmpl
··· 18 18 {{end}} 19 19 {{end}} 20 20 <div class="ui top attached header clearing segment tw-relative commit-header {{$class}}"> 21 - <div class="gt-df gt-mb-4 gt-fw"> 22 - <h3 class="gt-mb-0 gt-f1"><span class="commit-summary" title="{{.Commit.Summary}}">{{RenderCommitMessage $.Context .Commit.Message ($.Repository.ComposeMetas ctx)}}</span>{{template "repo/commit_statuses" dict "Status" .CommitStatus "Statuses" .CommitStatuses}}</h3> 21 + <div class="tw-flex gt-mb-4 tw-flex-wrap"> 22 + <h3 class="gt-mb-0 tw-flex-1"><span class="commit-summary" title="{{.Commit.Summary}}">{{RenderCommitMessage $.Context .Commit.Message ($.Repository.ComposeMetas ctx)}}</span>{{template "repo/commit_statuses" dict "Status" .CommitStatus "Statuses" .CommitStatuses}}</h3> 23 23 {{if not $.PageIsWiki}} 24 24 <div> 25 25 <a class="ui primary tiny button" href="{{.SourcePath}}"> ··· 139 139 {{end}} 140 140 {{template "repo/commit_load_branches_and_tags" .}} 141 141 </div> 142 - <div class="ui attached segment gt-df gt-ac gt-sb gt-py-2 commit-header-row gt-fw {{$class}}"> 143 - <div class="gt-df gt-ac author"> 142 + <div class="ui attached segment tw-flex tw-content-center tw-justify-between gt-py-2 commit-header-row tw-flex-wrap {{$class}}"> 143 + <div class="tw-flex tw-content-center author"> 144 144 {{if .Author}} 145 145 {{ctx.AvatarUtils.Avatar .Author 28 "gt-mr-3"}} 146 146 {{if .Author.FullName}} ··· 164 164 {{end}} 165 165 {{end}} 166 166 </div> 167 - <div class="ui horizontal list gt-df gt-ac"> 167 + <div class="ui horizontal list tw-flex tw-content-center"> 168 168 {{if .Parents}} 169 169 <div class="item"> 170 170 <span>{{ctx.Locale.Tr "repo.diff.parent"}}</span> ··· 184 184 </div> 185 185 </div> 186 186 {{if .Commit.Signature}} 187 - <div class="ui bottom attached message tw-text-left gt-df gt-ac gt-sb commit-header-row gt-fw gt-mb-0 {{$class}}"> 188 - <div class="gt-df gt-ac"> 187 + <div class="ui bottom attached message tw-text-left tw-flex tw-content-center tw-justify-between commit-header-row tw-flex-wrap gt-mb-0 {{$class}}"> 188 + <div class="tw-flex tw-content-center"> 189 189 {{if .Verification.Verified}} 190 190 {{if ne .Verification.SigningUser.ID 0}} 191 191 {{svg "gitea-lock" 16 "gt-mr-3"}} ··· 209 209 <span class="ui text">{{ctx.Locale.Tr .Verification.Reason}}</span> 210 210 {{end}} 211 211 </div> 212 - <div class="gt-df gt-ac"> 212 + <div class="tw-flex tw-content-center"> 213 213 {{if .Verification.Verified}} 214 214 {{if ne .Verification.SigningUser.ID 0}} 215 215 {{svg "octicon-verified" 16 "gt-mr-3"}}
+2 -2
templates/repo/commit_statuses.tmpl
··· 1 1 {{if .Statuses}} 2 2 {{if and (eq (len .Statuses) 1) .Status.TargetURL}} 3 - <a class="gt-vm {{.AdditionalClasses}} tw-no-underline" data-tippy="commit-statuses" href="{{.Status.TargetURL}}"> 3 + <a class="tw-align-middle {{.AdditionalClasses}} tw-no-underline" data-tippy="commit-statuses" href="{{.Status.TargetURL}}"> 4 4 {{template "repo/commit_status" .Status}} 5 5 </a> 6 6 {{else}} 7 - <span class="gt-vm {{.AdditionalClasses}}" data-tippy="commit-statuses" tabindex="0"> 7 + <span class="tw-align-middle {{.AdditionalClasses}}" data-tippy="commit-statuses" tabindex="0"> 8 8 {{template "repo/commit_status" .Status}} 9 9 </span> 10 10 {{end}}
+1 -1
templates/repo/commits.tmpl
··· 4 4 <div class="ui container"> 5 5 {{template "repo/sub_menu" .}} 6 6 <div class="repo-button-row"> 7 - <div class="gt-df gt-ac"> 7 + <div class="tw-flex tw-content-center"> 8 8 {{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "gt-mr-2"}} 9 9 <a href="{{.RepoLink}}/graph" class="ui basic small compact button"> 10 10 {{svg "octicon-git-branch"}}
+1 -1
templates/repo/commits_list_small.tmpl
··· 13 13 14 14 {{$commitLink:= printf "%s/commit/%s" $.comment.Issue.PullRequest.BaseRepo.Link (PathEscape .ID.String)}} 15 15 16 - <span class="shabox gt-df gt-ac tw-float-right"> 16 + <span class="shabox tw-flex tw-content-center tw-float-right"> 17 17 {{template "repo/commit_statuses" dict "Status" .Status "Statuses" .Statuses}} 18 18 {{$class := "ui sha label"}} 19 19 {{if .Signature}}
+2 -2
templates/repo/commits_table.tmpl
··· 1 - <h4 class="ui top attached header commits-table gt-df gt-ac gt-sb"> 2 - <div class="commits-table-left gt-df gt-ac"> 1 + <h4 class="ui top attached header commits-table tw-flex tw-content-center tw-justify-between"> 2 + <div class="commits-table-left tw-flex tw-content-center"> 3 3 {{if or .PageIsCommits (gt .CommitCount 0)}} 4 4 {{.CommitCount}} {{ctx.Locale.Tr "repo.commits.commits"}} 5 5 {{else if .IsNothingToCompare}}
+2 -2
templates/repo/diff/blob_excerpt.tmpl
··· 3 3 <tr class="{{.GetHTMLDiffLineType}}-code nl-{{$k}} ol-{{$k}}"> 4 4 {{if eq .GetType 4}} 5 5 <td class="lines-num lines-num-old" data-line-num="{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}"> 6 - <div class="gt-df"> 6 + <div class="tw-flex"> 7 7 {{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5)}} 8 8 <button class="code-expander-button" hx-target="closest tr" hx-get="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}?{{$line.GetBlobExcerptQuery}}&style=split&direction=down&wiki={{$.PageIsWiki}}&anchor={{$.Anchor}}"> 9 9 {{svg "octicon-fold-down"}} ··· 49 49 <tr class="{{.GetHTMLDiffLineType}}-code nl-{{$k}} ol-{{$k}}"> 50 50 {{if eq .GetType 4}} 51 51 <td colspan="2" class="lines-num"> 52 - <div class="gt-df"> 52 + <div class="tw-flex"> 53 53 {{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5)}} 54 54 <button class="code-expander-button" hx-target="closest tr" hx-get="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}?data-query={{$line.GetBlobExcerptQuery}}&style=unified&direction=down&wiki={{$.PageIsWiki}}&anchor={{$.Anchor}}"> 55 55 {{svg "octicon-fold-down"}}
+8 -8
templates/repo/diff/box.tmpl
··· 1 1 {{$showFileTree := (and (not .DiffNotAvailable) (gt .Diff.NumFiles 1))}} 2 2 <div> 3 3 <div class="diff-detail-box diff-box"> 4 - <div class="gt-df gt-ac gt-fw gt-gap-3 gt-ml-1"> 4 + <div class="tw-flex tw-content-center tw-flex-wrap gt-gap-3 gt-ml-1"> 5 5 {{if $showFileTree}} 6 6 <button class="diff-toggle-file-tree-button not-mobile btn interact-fg" data-show-text="{{ctx.Locale.Tr "repo.diff.show_file_tree"}}" data-hide-text="{{ctx.Locale.Tr "repo.diff.hide_file_tree"}}"> 7 7 {{/* the icon meaning is reversed here, "octicon-sidebar-collapse" means show the file tree */}} ··· 18 18 </script> 19 19 {{end}} 20 20 {{if not .DiffNotAvailable}} 21 - <div class="diff-detail-stats gt-df gt-ac gt-fw"> 21 + <div class="diff-detail-stats tw-flex tw-content-center tw-flex-wrap"> 22 22 {{svg "octicon-diff" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.diff.stats_desc" .Diff.NumFiles .Diff.TotalAddition .Diff.TotalDeletion}} 23 23 </div> 24 24 {{end}} 25 25 </div> 26 26 <div class="diff-detail-actions"> 27 27 {{if and .PageIsPullFiles $.SignedUserID (not .IsArchived) (not .DiffNotAvailable)}} 28 - <div class="not-mobile gt-df gt-ac gt-fc tw-whitespace-nowrap gt-mr-2"> 28 + <div class="not-mobile tw-flex tw-content-center tw-flex-col tw-whitespace-nowrap gt-mr-2"> 29 29 <label for="viewed-files-summary" id="viewed-files-summary-label" data-text-changed-template="{{ctx.Locale.Tr "repo.pulls.viewed_files_label"}}"> 30 30 {{ctx.Locale.Tr "repo.pulls.viewed_files_label" .Diff.NumViewedFiles .Diff.NumFiles}} 31 31 </label> ··· 110 110 {{$isExpandable := or (gt $file.Addition 0) (gt $file.Deletion 0) $file.IsBin}} 111 111 {{$isReviewFile := and $.IsSigned $.PageIsPullFiles (not $.IsArchived) $.IsShowingAllCommits}} 112 112 <div class="diff-file-box diff-box file-content {{TabSizeClass $.Editorconfig $file.Name}} gt-mt-0" id="diff-{{$file.NameHash}}" data-old-filename="{{$file.OldName}}" data-new-filename="{{$file.Name}}" {{if or ($file.ShouldBeHidden) (not $isExpandable)}}data-folded="true"{{end}}> 113 - <h4 class="diff-file-header sticky-2nd-row ui top attached normal header gt-df gt-ac gt-sb gt-fw"> 114 - <div class="diff-file-name gt-df gt-ac gt-gap-2 gt-fw"> 113 + <h4 class="diff-file-header sticky-2nd-row ui top attached normal header tw-flex tw-content-center tw-justify-between tw-flex-wrap"> 114 + <div class="diff-file-name tw-flex tw-content-center gt-gap-2 tw-flex-wrap"> 115 115 <button class="fold-file btn interact-bg gt-p-2{{if not $isExpandable}} tw-invisible{{end}}"> 116 116 {{if $file.ShouldBeHidden}} 117 117 {{svg "octicon-chevron-right" 18}} ··· 119 119 {{svg "octicon-chevron-down" 18}} 120 120 {{end}} 121 121 </button> 122 - <div class="gt-font-semibold gt-df gt-ac gt-mono"> 122 + <div class="gt-font-semibold tw-flex tw-content-center gt-mono"> 123 123 {{if $file.IsBin}} 124 124 <span class="gt-ml-1 gt-mr-3"> 125 125 {{ctx.Locale.Tr "repo.diff.bin"}} ··· 144 144 <span class="gt-ml-4 gt-mono">{{ctx.Locale.Tr ($file.ModeTranslationKey $file.Mode)}}</span> 145 145 {{end}} 146 146 </div> 147 - <div class="diff-file-header-actions gt-df gt-ac gt-gap-2 gt-fw"> 147 + <div class="diff-file-header-actions tw-flex tw-content-center gt-gap-2 tw-flex-wrap"> 148 148 {{if $showFileViewToggle}} 149 149 <div class="ui compact icon buttons"> 150 150 <button class="ui tiny basic button file-view-toggle" data-toggle-selector="#diff-source-{{$file.NameHash}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_source"}}">{{svg "octicon-code"}}</button> ··· 221 221 222 222 {{if .Diff.IsIncomplete}} 223 223 <div class="diff-file-box diff-box file-content gt-mt-3" id="diff-incomplete"> 224 - <h4 class="ui top attached normal header gt-df gt-ac gt-sb"> 224 + <h4 class="ui top attached normal header tw-flex tw-content-center tw-justify-between"> 225 225 {{ctx.Locale.Tr "repo.diff.too_many_files"}} 226 226 <a class="ui basic tiny button" id="diff-show-more-files" data-href="?skip-to={{.Diff.End}}&file-only=true">{{ctx.Locale.Tr "repo.diff.show_more"}}</a> 227 227 </h4>
+3 -3
templates/repo/diff/comments.tmpl
··· 8 8 {{template "shared/user/avatarlink" dict "user" .Poster}} 9 9 {{end}} 10 10 <div class="content comment-container"> 11 - <div class="ui top attached header comment-header gt-df gt-ac gt-sb"> 12 - <div class="comment-header-left gt-df gt-ac"> 11 + <div class="ui top attached header comment-header tw-flex tw-content-center tw-justify-between"> 12 + <div class="comment-header-left tw-flex tw-content-center"> 13 13 {{if .OriginalAuthor}} 14 14 <span class="text black gt-font-semibold gt-mr-2"> 15 15 {{svg (MigrationIcon $.root.Repository.GetOriginalURLHostname)}} ··· 30 30 </span> 31 31 {{end}} 32 32 </div> 33 - <div class="comment-header-right actions gt-df gt-ac"> 33 + <div class="comment-header-right actions tw-flex tw-content-center"> 34 34 {{if .Invalidated}} 35 35 {{$referenceUrl := printf "%s#%s" $.root.Issue.Link .HashTag}} 36 36 <a href="{{AppSubUrl}}{{$referenceUrl}}" class="ui label basic small" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.review.outdated_description"}}">
+5 -5
templates/repo/diff/new_review.tmpl
··· 1 1 <div id="review-box"> 2 - <button class="ui tiny primary button gt-pr-2 gt-df js-btn-review {{if not $.IsShowingAllCommits}}disabled{{end}}" {{if not $.IsShowingAllCommits}}data-tooltip-content="{{ctx.Locale.Tr "repo.pulls.review_only_possible_for_full_diff"}}"{{end}}> 2 + <button class="ui tiny primary button gt-pr-2 tw-flex js-btn-review {{if not $.IsShowingAllCommits}}disabled{{end}}" {{if not $.IsShowingAllCommits}}data-tooltip-content="{{ctx.Locale.Tr "repo.pulls.review_only_possible_for_full_diff"}}"{{end}}> 3 3 {{ctx.Locale.Tr "repo.diff.review"}} 4 4 <span class="ui small label review-comments-counter" data-pending-comment-number="{{.PendingCodeCommentNumber}}">{{.PendingCodeCommentNumber}}</span> 5 5 {{svg "octicon-triangle-down" 14 "dropdown icon"}} ··· 10 10 <form class="ui form form-fetch-action" action="{{.Link}}/reviews/submit" method="post"> 11 11 {{.CsrfTokenHtml}} 12 12 <input type="hidden" name="commit_id" value="{{.AfterCommitID}}"> 13 - <div class="field gt-df gt-ac"> 14 - <div class="gt-f1">{{ctx.Locale.Tr "repo.diff.review.header"}}</div> 13 + <div class="field tw-flex tw-content-center"> 14 + <div class="tw-flex-1">{{ctx.Locale.Tr "repo.diff.review.header"}}</div> 15 15 <a class="muted close">{{svg "octicon-x" 16}}</a> 16 16 </div> 17 17 <div class="field"> ··· 31 31 <div class="divider"></div> 32 32 {{$showSelfTooltip := (and $.IsSigned ($.Issue.IsPoster $.SignedUser.ID))}} 33 33 {{if $showSelfTooltip}} 34 - <span class="gt-dib" data-tooltip-content="{{ctx.Locale.Tr "repo.diff.review.self_approve"}}"> 34 + <span class="tw-inline-block" data-tooltip-content="{{ctx.Locale.Tr "repo.diff.review.self_approve"}}"> 35 35 <button type="submit" name="type" value="approve" disabled class="ui submit primary tiny button btn-submit">{{ctx.Locale.Tr "repo.diff.review.approve"}}</button> 36 36 </span> 37 37 {{else}} ··· 39 39 {{end}} 40 40 <button type="submit" name="type" value="comment" class="ui submit tiny basic button btn-submit">{{ctx.Locale.Tr "repo.diff.review.comment"}}</button> 41 41 {{if $showSelfTooltip}} 42 - <span class="gt-dib" data-tooltip-content="{{ctx.Locale.Tr "repo.diff.review.self_reject"}}"> 42 + <span class="tw-inline-block" data-tooltip-content="{{ctx.Locale.Tr "repo.diff.review.self_reject"}}"> 43 43 <button type="submit" name="type" value="reject" disabled class="ui submit red tiny button btn-submit">{{ctx.Locale.Tr "repo.diff.review.reject"}}</button> 44 44 </span> 45 45 {{else}}
+1 -1
templates/repo/diff/section_split.tmpl
··· 16 16 <tr class="{{.GetHTMLDiffLineType}}-code nl-{{$k}} ol-{{$k}}" data-line-type="{{.GetHTMLDiffLineType}}"> 17 17 {{if eq .GetType 4}} 18 18 <td class="lines-num lines-num-old"> 19 - <div class="gt-df"> 19 + <div class="tw-flex"> 20 20 {{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5)}} 21 21 <button class="code-expander-button" hx-target="closest tr" hx-get="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}?{{$line.GetBlobExcerptQuery}}&style=split&direction=down&wiki={{$.root.PageIsWiki}}&anchor=diff-{{$file.NameHash}}K{{$line.SectionInfo.RightIdx}}"> 22 22 {{svg "octicon-fold-down"}}
+1 -1
templates/repo/diff/section_unified.tmpl
··· 12 12 {{if eq .GetType 4}} 13 13 {{if $.root.AfterCommitID}} 14 14 <td colspan="2" class="lines-num"> 15 - <div class="gt-df"> 15 + <div class="tw-flex"> 16 16 {{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5)}} 17 17 <button class="code-expander-button" hx-target="closest tr" hx-get="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}?{{$line.GetBlobExcerptQuery}}&style=unified&direction=down&wiki={{$.root.PageIsWiki}}&anchor=diff-{{$file.NameHash}}K{{$line.SectionInfo.RightIdx}}"> 18 18 {{svg "octicon-fold-down"}}
+2 -2
templates/repo/find/files.tmpl
··· 2 2 <div role="main" aria-label="{{.Title}}" class="page-content repository"> 3 3 {{template "repo/header" .}} 4 4 <div class="ui container"> 5 - <div class="gt-df gt-ac"> 5 + <div class="tw-flex tw-content-center"> 6 6 <a href="{{$.RepoLink}}">{{.RepoName}}</a> 7 7 <span class="gt-mx-3">/</span> 8 - <div class="ui input gt-f1"> 8 + <div class="ui input tw-flex-1"> 9 9 <input id="repo-file-find-input" type="text" autofocus data-url-data-link="{{.DataLink}}" data-url-tree-link="{{.TreeLink}}"> 10 10 </div> 11 11 </div>
+1 -1
templates/repo/forks.tmpl
··· 6 6 {{ctx.Locale.Tr "repo.forks"}} 7 7 </h2> 8 8 {{range .Forks}} 9 - <div class="gt-df gt-ac gt-py-3"> 9 + <div class="tw-flex tw-content-center gt-py-3"> 10 10 <span class="gt-mr-2">{{ctx.AvatarUtils.Avatar .Owner}}</span> 11 11 <a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a> / <a href="{{.Link}}">{{.Name}}</a> 12 12 </div>
+4 -4
templates/repo/graph/commits.tmpl
··· 28 28 {{- end -}} 29 29 </a> 30 30 </span> 31 - <span class="message gt-dib gt-ellipsis gt-mr-3"> 31 + <span class="message tw-inline-block gt-ellipsis gt-mr-3"> 32 32 <span>{{RenderCommitMessage $.Context $commit.Subject ($.Repository.ComposeMetas ctx)}}</span> 33 33 </span> 34 - <span class="commit-refs gt-df gt-ac gt-mr-2"> 34 + <span class="commit-refs tw-flex tw-content-center gt-mr-2"> 35 35 {{range $commit.Refs}} 36 36 {{$refGroup := .RefGroup}} 37 37 {{if eq $refGroup "pull"}} ··· 58 58 {{end}} 59 59 {{end}} 60 60 </span> 61 - <span class="author gt-df gt-ac gt-mr-3"> 61 + <span class="author tw-flex tw-content-center gt-mr-3"> 62 62 {{$userName := $commit.Commit.Author.Name}} 63 63 {{if $commit.User}} 64 64 {{if $commit.User.FullName}} ··· 71 71 {{$userName}} 72 72 {{end}} 73 73 </span> 74 - <span class="time gt-df gt-ac">{{DateTime "full" $commit.Date}}</span> 74 + <span class="time tw-flex tw-content-center">{{DateTime "full" $commit.Date}}</span> 75 75 {{end}} 76 76 </li> 77 77 {{end}}
+7 -7
templates/repo/home.tmpl
··· 27 27 </form> 28 28 </div> 29 29 </div> 30 - <div class="gt-df gt-ac gt-fw gt-gap-2" id="repo-topics"> 30 + <div class="tw-flex tw-content-center tw-flex-wrap gt-gap-2" id="repo-topics"> 31 31 {{range .Topics}}<a class="ui repo-topic large label topic gt-m-0" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}} 32 32 {{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<button id="manage_topic" class="btn interact-fg gt-font-12">{{ctx.Locale.Tr "repo.topic.manage_topics"}}</button>{{end}} 33 33 </div> 34 34 {{end}} 35 35 {{if and .Permission.IsAdmin (not .Repository.IsArchived)}} 36 - <div class="ui form gt-hidden gt-df gt-fc gt-mt-4" id="topic_edit"> 37 - <div class="field gt-f1 gt-mb-2"> 38 - <div class="ui fluid multiple search selection dropdown gt-fw" data-text-count-prompt="{{ctx.Locale.Tr "repo.topic.count_prompt"}}" data-text-format-prompt="{{ctx.Locale.Tr "repo.topic.format_prompt"}}"> 36 + <div class="ui form gt-hidden tw-flex tw-flex-col gt-mt-4" id="topic_edit"> 37 + <div class="field tw-flex-1 gt-mb-2"> 38 + <div class="ui fluid multiple search selection dropdown tw-flex-wrap" data-text-count-prompt="{{ctx.Locale.Tr "repo.topic.count_prompt"}}" data-text-format-prompt="{{ctx.Locale.Tr "repo.topic.format_prompt"}}"> 39 39 <input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if Eval $i "+" 1 "<" (len $.Topics)}},{{end}}{{end}}"> 40 40 {{range .Topics}} 41 41 {{/* keey the same layout as Fomantic UI generated labels */}} 42 - <a class="ui label transition visible tw-cursor-default gt-dib" data-value="{{.Name}}">{{.Name}}{{svg "octicon-x" 16 "delete icon"}}</a> 42 + <a class="ui label transition visible tw-cursor-default tw-inline-block" data-value="{{.Name}}">{{.Name}}{{svg "octicon-x" 16 "delete icon"}}</a> 43 43 {{end}} 44 44 <div class="text"></div> 45 45 </div> ··· 69 69 {{end}} 70 70 {{template "repo/sub_menu" .}} 71 71 <div class="repo-button-row"> 72 - <div class="gt-df gt-ac gt-fw gt-gap-y-3"> 72 + <div class="tw-flex tw-content-center tw-flex-wrap gt-gap-y-3"> 73 73 {{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "gt-mr-2"}} 74 74 {{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}} 75 75 {{$cmpBranch := ""}} ··· 129 129 </span> 130 130 {{end}} 131 131 </div> 132 - <div class="gt-df gt-ac"> 132 + <div class="tw-flex tw-content-center"> 133 133 <!-- Only show clone panel in repository home page --> 134 134 {{if eq $n 0}} 135 135 <div class="clone-panel ui action tiny input">
+1 -1
templates/repo/icon.tmpl
··· 1 1 {{$avatarLink := (.RelAvatarLink ctx)}} 2 2 {{if $avatarLink}} 3 - <img class="ui avatar gt-vm" src="{{$avatarLink}}" width="24" height="24" alt="{{.FullName}}"> 3 + <img class="ui avatar tw-align-middle" src="{{$avatarLink}}" width="24" height="24" alt="{{.FullName}}"> 4 4 {{else if $.IsMirror}} 5 5 {{svg "octicon-mirror" 24}} 6 6 {{else if $.IsFork}}
+8 -8
templates/repo/issue/card.tmpl
··· 7 7 </div> 8 8 {{end}} 9 9 <div class="content gt-p-0 tw-w-full"> 10 - <div class="gt-df tw-items-start"> 10 + <div class="tw-flex tw-items-start"> 11 11 <div class="issue-card-icon"> 12 12 {{template "shared/issueicon" .}} 13 13 </div> 14 14 <a class="issue-card-title muted issue-title" href="{{.Link}}">{{.Title | RenderEmoji ctx | RenderCodeBlock}}</a> 15 15 {{if and $.isPinnedIssueCard $.Page.IsRepoAdmin}} 16 - <a role="button" class="issue-card-unpin muted gt-df gt-ac" data-tooltip-content={{ctx.Locale.Tr "repo.issues.unpin_issue"}} data-issue-id="{{.ID}}" data-unpin-url="{{$.Page.Link}}/unpin/{{.Index}}"> 16 + <a role="button" class="issue-card-unpin muted tw-flex tw-content-center" data-tooltip-content={{ctx.Locale.Tr "repo.issues.unpin_issue"}} data-issue-id="{{.ID}}" data-unpin-url="{{$.Page.Link}}/unpin/{{.Index}}"> 17 17 {{svg "octicon-x" 16}} 18 18 </a> 19 19 {{end}} ··· 34 34 {{if .MilestoneID}} 35 35 <div class="meta gt-my-2"> 36 36 <a class="milestone" href="{{.Repo.Link}}/milestone/{{.MilestoneID}}"> 37 - {{svg "octicon-milestone" 16 "gt-mr-2 gt-vm"}} 38 - <span class="gt-vm">{{.Milestone.Name}}</span> 37 + {{svg "octicon-milestone" 16 "gt-mr-2 tw-align-middle"}} 38 + <span class="tw-align-middle">{{.Milestone.Name}}</span> 39 39 </a> 40 40 </div> 41 41 {{end}} ··· 43 43 {{range index $.Page.LinkedPRs .ID}} 44 44 <div class="meta gt-my-2"> 45 45 <a href="{{$.Issue.Repo.Link}}/pulls/{{.Index}}"> 46 - <span class="gt-m-0 text {{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge" 16 "gt-mr-2 gt-vm"}}</span> 47 - <span class="gt-vm">{{.Title}} <span class="text light grey">#{{.Index}}</span></span> 46 + <span class="gt-m-0 text {{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge" 16 "gt-mr-2 tw-align-middle"}}</span> 47 + <span class="tw-align-middle">{{.Title}} <span class="text light grey">#{{.Index}}</span></span> 48 48 </a> 49 49 </div> 50 50 {{end}} ··· 52 52 {{$tasks := .GetTasks}} 53 53 {{if gt $tasks 0}} 54 54 <div class="meta gt-my-2"> 55 - {{svg "octicon-checklist" 16 "gt-mr-2 gt-vm"}} 56 - <span class="gt-vm">{{.GetTasksDone}} / {{$tasks}}</span> 55 + {{svg "octicon-checklist" 16 "gt-mr-2 tw-align-middle"}} 56 + <span class="tw-align-middle">{{.GetTasksDone}} / {{$tasks}}</span> 57 57 </div> 58 58 {{end}} 59 59 </div>
+2 -2
templates/repo/issue/label_precolors.tmpl
··· 1 1 <div class="precolors"> 2 - <div class="gt-df"> 2 + <div class="tw-flex"> 3 3 <a class="color" style="background-color:#e11d21" data-color-hex="#e11d21"></a> 4 4 <a class="color" style="background-color:#eb6420" data-color-hex="#eb6420"></a> 5 5 <a class="color" style="background-color:#fbca04" data-color-hex="#fbca04"></a> ··· 9 9 <a class="color" style="background-color:#0052cc" data-color-hex="#0052cc"></a> 10 10 <a class="color" style="background-color:#5319e7" data-color-hex="#5319e7"></a> 11 11 </div> 12 - <div class="gt-df"> 12 + <div class="tw-flex"> 13 13 <a class="color" style="background-color:#f6c6c7" data-color-hex="#f6c6c7"></a> 14 14 <a class="color" style="background-color:#fad8c7" data-color-hex="#fad8c7"></a> 15 15 <a class="color" style="background-color:#fef2c0" data-color-hex="#fef2c0"></a>
+2 -2
templates/repo/issue/labels/label_list.tmpl
··· 42 42 <a class="open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}">{{svg "octicon-issue-opened"}} {{ctx.Locale.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a> 43 43 {{end}} 44 44 </div> 45 - <div class="label-operation gt-df"> 45 + <div class="label-operation tw-flex"> 46 46 {{template "repo/issue/labels/label_archived" .}} 47 - <div class="gt-df tw-ml-auto"> 47 + <div class="tw-flex tw-ml-auto"> 48 48 {{if and (not $.PageIsOrgSettingsLabels) (not $.Repository.IsArchived) (or $.CanWriteIssues $.CanWritePulls)}} 49 49 <a class="edit-label-button" href="#" data-id="{{.ID}}" data-title="{{.Name}}" {{if .Exclusive}}data-exclusive{{end}} {{if gt .ArchivedUnix 0}}data-is-archived{{end}} data-num-issues="{{.NumIssues}}" data-description="{{.Description}}" data-color={{.Color}}>{{svg "octicon-pencil"}} {{ctx.Locale.Tr "repo.issues.label_edit"}}</a> 50 50 <a class="delete-button" href="#" data-url="{{$.Link}}/delete" data-id="{{.ID}}">{{svg "octicon-trash"}} {{ctx.Locale.Tr "repo.issues.label_delete"}}</a>
+5 -5
templates/repo/issue/milestone_issues.tmpl
··· 3 3 {{template "repo/header" .}} 4 4 <div class="ui container"> 5 5 {{template "base/alert" .}} 6 - <div class="gt-df"> 6 + <div class="tw-flex"> 7 7 <h1 class="gt-mb-3">{{.Milestone.Name}}</h1> 8 8 {{if not .Repository.IsArchived}} 9 - <div class="text right gt-f1"> 9 + <div class="text right tw-flex-1"> 10 10 {{if or .CanWriteIssues .CanWritePulls}} 11 11 {{if .Milestone.IsClosed}} 12 12 <a class="ui primary basic button link-action" href data-url="{{$.RepoLink}}/milestones/{{.MilestoneID}}/open">{{ctx.Locale.Tr "repo.milestones.open"}} ··· 26 26 {{.Milestone.RenderedContent}} 27 27 </div> 28 28 {{end}} 29 - <div class="gt-df gt-fc gt-gap-3"> 29 + <div class="tw-flex tw-flex-col gt-gap-3"> 30 30 <progress class="milestone-progress-big" value="{{.Milestone.Completeness}}" max="100"></progress> 31 - <div class="gt-df gt-gap-4"> 32 - <div classs="gt-df gt-ac"> 31 + <div class="tw-flex gt-gap-4"> 32 + <div classs="tw-flex tw-content-center"> 33 33 {{$closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix ctx.Locale}} 34 34 {{if .IsClosed}} 35 35 {{svg "octicon-clock"}} {{ctx.Locale.Tr "repo.milestones.closed" $closedDate}}
+1 -1
templates/repo/issue/milestones.tmpl
··· 23 23 {{svg "octicon-milestone" 16}} 24 24 <a class="muted" href="{{$.RepoLink}}/milestone/{{.ID}}">{{.Name}}</a> 25 25 </h3> 26 - <div class="gt-df gt-ac"> 26 + <div class="tw-flex tw-content-center"> 27 27 <span class="gt-mr-3">{{.Completeness}}%</span> 28 28 <progress value="{{.Completeness}}" max="100"></progress> 29 29 </div>
+1 -1
templates/repo/issue/new_form.tmpl
··· 171 171 <div class="selected"> 172 172 {{range .Assignees}} 173 173 <a class="item gt-p-2 muted gt-hidden" id="assignee_{{.ID}}" href="{{$.RepoLink}}/issues?assignee={{.ID}}"> 174 - {{ctx.AvatarUtils.Avatar . 28 "gt-mr-3 gt-vm"}}{{.GetDisplayName}} 174 + {{ctx.AvatarUtils.Avatar . 28 "gt-mr-3 tw-align-middle"}}{{.GetDisplayName}} 175 175 </a> 176 176 {{end}} 177 177 </div>
+3 -3
templates/repo/issue/view_content.tmpl
··· 20 20 </a> 21 21 {{end}} 22 22 <div class="content comment-container"> 23 - <div class="ui top attached header comment-header gt-df gt-ac gt-sb" role="heading" aria-level="3"> 24 - <div class="comment-header-left gt-df gt-ac"> 23 + <div class="ui top attached header comment-header tw-flex tw-content-center tw-justify-between" role="heading" aria-level="3"> 24 + <div class="comment-header-left tw-flex tw-content-center"> 25 25 {{if .Issue.OriginalAuthor}} 26 26 <span class="text black gt-font-semibold"> 27 27 {{svg (MigrationIcon .Repository.GetOriginalURLHostname)}} ··· 43 43 </span> 44 44 {{end}} 45 45 </div> 46 - <div class="comment-header-right actions gt-df gt-ac"> 46 + <div class="comment-header-right actions tw-flex tw-content-center"> 47 47 {{template "repo/issue/view_content/show_role" dict "ShowRole" .Issue.ShowRole "IgnorePoster" true}} 48 48 {{if not $.Repository.IsArchived}} 49 49 {{template "repo/issue/view_content/add_reaction" dict "ctxData" $ "ActionURL" (printf "%s/issues/%d/reactions" $.RepoLink .Issue.Index)}}
+3 -3
templates/repo/issue/view_content/attachments.tmpl
··· 4 4 {{end}} 5 5 {{$hasThumbnails := false}} 6 6 {{- range .Attachments -}} 7 - <div class="gt-df"> 8 - <div class="gt-f1 gt-p-3"> 7 + <div class="tw-flex"> 8 + <div class="tw-flex-1 gt-p-3"> 9 9 <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}" title="{{ctx.Locale.Tr "repo.issues.attachment.open_tab" .Name}}"> 10 10 {{if FilenameIsImage .Name}} 11 11 {{if not (StringUtils.Contains (StringUtils.ToString $.RenderedContent) .UUID)}} ··· 18 18 <span><strong>{{.Name}}</strong></span> 19 19 </a> 20 20 </div> 21 - <div class="gt-p-3 gt-df gt-ac"> 21 + <div class="gt-p-3 tw-flex tw-content-center"> 22 22 <span class="ui text grey">{{.Size | FileSize}}</span> 23 23 </div> 24 24 </div>
+7 -7
templates/repo/issue/view_content/comments.tmpl
··· 25 25 </a> 26 26 {{end}} 27 27 <div class="content comment-container"> 28 - <div class="ui top attached header comment-header gt-df gt-ac gt-sb" role="heading" aria-level="3"> 29 - <div class="comment-header-left gt-df gt-ac"> 28 + <div class="ui top attached header comment-header tw-flex tw-content-center tw-justify-between" role="heading" aria-level="3"> 29 + <div class="comment-header-left tw-flex tw-content-center"> 30 30 {{if .OriginalAuthor}} 31 31 <span class="text black gt-font-semibold gt-mr-2"> 32 32 {{svg (MigrationIcon $.Repository.GetOriginalURLHostname)}} ··· 50 50 </span> 51 51 {{end}} 52 52 </div> 53 - <div class="comment-header-right actions gt-df gt-ac"> 53 + <div class="comment-header-right actions tw-flex tw-content-center"> 54 54 {{template "repo/issue/view_content/show_role" dict "ShowRole" .ShowRole}} 55 55 {{if not $.Repository.IsArchived}} 56 56 {{template "repo/issue/view_content/add_reaction" dict "ctxData" $ "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}} ··· 403 403 {{if or .Content .Attachments}} 404 404 <div class="timeline-item comment"> 405 405 <div class="content comment-container"> 406 - <div class="ui top attached header comment-header gt-df gt-ac gt-sb"> 407 - <div class="comment-header-left gt-df gt-ac"> 406 + <div class="ui top attached header comment-header tw-flex tw-content-center tw-justify-between"> 407 + <div class="comment-header-left tw-flex tw-content-center"> 408 408 {{if gt .Poster.ID 0}} 409 409 <a class="inline-timeline-avatar" href="{{.Poster.HomeLink}}"> 410 410 {{ctx.AvatarUtils.Avatar .Poster 24}} ··· 425 425 {{ctx.Locale.Tr "repo.issues.review.left_comment"}} 426 426 </span> 427 427 </div> 428 - <div class="comment-header-right actions gt-df gt-ac"> 428 + <div class="comment-header-right actions tw-flex tw-content-center"> 429 429 {{template "repo/issue/view_content/show_role" dict "ShowRole" .ShowRole}} 430 430 {{if not $.Repository.IsArchived}} 431 431 {{template "repo/issue/view_content/add_reaction" dict "ctxData" $ "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}} ··· 622 622 {{if .Content}} 623 623 <div class="timeline-item comment"> 624 624 <div class="content"> 625 - <div class="ui top attached header comment-header-left gt-df gt-ac arrow-top"> 625 + <div class="ui top attached header comment-header-left tw-flex tw-content-center arrow-top"> 626 626 {{if gt .Poster.ID 0}} 627 627 <a class="inline-timeline-avatar" href="{{.Poster.HomeLink}}"> 628 628 {{ctx.AvatarUtils.Avatar .Poster 24}}
+3 -3
templates/repo/issue/view_content/pull.tmpl
··· 33 33 <div class="ui attached merge-section segment {{if not $.LatestCommitStatus}}no-header{{end}} flex-items-block"> 34 34 {{if .Issue.PullRequest.HasMerged}} 35 35 {{if .IsPullBranchDeletable}} 36 - <div class="item item-section text gt-f1"> 36 + <div class="item item-section text tw-flex-1"> 37 37 <div class="item-section-left"> 38 38 <h3 class="gt-mb-3"> 39 39 {{ctx.Locale.Tr "repo.pulls.merged_success"}} ··· 48 48 </div> 49 49 {{end}} 50 50 {{else if .Issue.IsClosed}} 51 - <div class="item item-section text gt-f1"> 51 + <div class="item item-section text tw-flex-1"> 52 52 <div class="item-section-left"> 53 53 <h3 class="gt-mb-3">{{ctx.Locale.Tr "repo.pulls.closed"}}</h3> 54 54 <div class="merge-section-info"> ··· 82 82 </div> 83 83 {{else if .IsPullWorkInProgress}} 84 84 <div class="item toggle-wip" data-title="{{.Issue.Title}}" data-wip-prefix="{{.WorkInProgressPrefix}}" data-update-url="{{.Issue.Link}}/title"> 85 - <div class="item-section-left flex-text-inline gt-f1"> 85 + <div class="item-section-left flex-text-inline tw-flex-1"> 86 86 {{svg "octicon-x"}} 87 87 {{ctx.Locale.Tr "repo.pulls.cannot_merge_work_in_progress"}} 88 88 </div>
+22 -22
templates/repo/issue/view_content/sidebar.tmpl
··· 3 3 {{if .Issue.IsPull}} 4 4 <input id="reviewer_id" name="reviewer_id" type="hidden" value="{{.reviewer_id}}"> 5 5 <div class="ui {{if or (and (not .Reviewers) (not .TeamReviewers)) (not .CanChooseReviewer) .Repository.IsArchived}}disabled{{end}} floating jump select-reviewers-modify dropdown"> 6 - <a class="text gt-df gt-ac muted"> 6 + <a class="text tw-flex tw-content-center muted"> 7 7 <strong>{{ctx.Locale.Tr "repo.issues.review.reviewers"}}</strong> 8 8 {{if and .CanChooseReviewer (not .Repository.IsArchived)}} 9 9 {{svg "octicon-gear" 16 "gt-ml-2"}} ··· 50 50 <span class="no-select item {{if or .OriginalReviews .PullReviewers}}gt-hidden{{end}}">{{ctx.Locale.Tr "repo.issues.new.no_reviewers"}}</span> 51 51 <div class="selected"> 52 52 {{range .PullReviewers}} 53 - <div class="item gt-df gt-ac gt-py-3"> 54 - <div class="gt-df gt-ac gt-f1"> 53 + <div class="item tw-flex tw-content-center gt-py-3"> 54 + <div class="tw-flex tw-content-center tw-flex-1"> 55 55 {{if .User}} 56 56 <a class="muted sidebar-item-link" href="{{.User.HomeLink}}">{{ctx.AvatarUtils.Avatar .User 20 "gt-mr-3"}}{{.User.GetDisplayName}}</a> 57 57 {{else if .Team}} 58 58 <span class="text">{{svg "octicon-people" 20 "gt-mr-3"}}{{$.Issue.Repo.OwnerName}}/{{.Team.Name}}</span> 59 59 {{end}} 60 60 </div> 61 - <div class="gt-df gt-ac gt-gap-3"> 61 + <div class="tw-flex tw-content-center gt-gap-3"> 62 62 {{if (and $.Permission.IsAdmin (or (eq .Review.Type 1) (eq .Review.Type 3)) (not $.Issue.IsClosed))}} 63 - <a href="#" class="ui muted icon gt-df gt-ac show-modal" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dismiss_review"}}" data-modal="#dismiss-review-modal-{{.Review.ID}}"> 63 + <a href="#" class="ui muted icon tw-flex tw-content-center show-modal" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dismiss_review"}}" data-modal="#dismiss-review-modal-{{.Review.ID}}"> 64 64 {{svg "octicon-x" 20}} 65 65 </a> 66 66 <div class="ui small modal" id="dismiss-review-modal-{{.Review.ID}}"> ··· 99 99 </div> 100 100 {{end}} 101 101 {{range .OriginalReviews}} 102 - <div class="item gt-df gt-ac gt-py-3"> 103 - <div class="gt-df gt-ac gt-f1"> 102 + <div class="item tw-flex tw-content-center gt-py-3"> 103 + <div class="tw-flex tw-content-center tw-flex-1"> 104 104 <a class="muted" href="{{$.Repository.OriginalURL}}" data-tooltip-content="{{ctx.Locale.Tr "repo.migrated_from_fake" $.Repository.GetOriginalURLHostname}}"> 105 105 {{svg (MigrationIcon $.Repository.GetOriginalURLHostname) 20 "gt-mr-3"}} 106 106 {{.OriginalAuthor}} 107 107 </a> 108 108 </div> 109 - <div class="gt-df gt-ac gt-gap-3"> 109 + <div class="tw-flex tw-content-center gt-gap-3"> 110 110 {{svg (printf "octicon-%s" .Type.Icon) 16 (printf "text %s" (.HTMLTypeColorName))}} 111 111 </div> 112 112 </div> ··· 264 264 265 265 {{if .Participants}} 266 266 <span class="text"><strong>{{ctx.Locale.Tr "repo.issues.num_participants" .NumParticipants}}</strong></span> 267 - <div class="ui list gt-df gt-fw"> 267 + <div class="ui list tw-flex tw-flex-wrap"> 268 268 {{range .Participants}} 269 269 <a {{if gt .ID 0}}href="{{.HomeLink}}"{{end}} data-tooltip-content="{{.GetDisplayName}}"> 270 270 {{ctx.AvatarUtils.Avatar . 28 "gt-my-1 gt-mr-2"}} ··· 368 368 </div> 369 369 {{if ne .Issue.DeadlineUnix 0}} 370 370 <p> 371 - <div class="gt-df gt-sb gt-ac"> 371 + <div class="tw-flex tw-justify-between tw-content-center"> 372 372 <div class="due-date {{if .Issue.IsOverdue}}text red{{end}}" {{if .Issue.IsOverdue}}data-tooltip-content="{{ctx.Locale.Tr "repo.issues.due_date_overdue"}}"{{end}}> 373 373 {{svg "octicon-calendar" 16 "gt-mr-3"}} 374 374 {{DateTime "long" .Issue.DeadlineUnix.FormatDate}} ··· 424 424 </span> 425 425 <div class="ui relaxed divided list"> 426 426 {{range .BlockingDependencies}} 427 - <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} gt-df gt-ac gt-sb"> 428 - <div class="item-left gt-df gt-jc gt-fc gt-f1 gt-ellipsis"> 427 + <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} tw-flex tw-content-center tw-justify-between"> 428 + <div class="item-left tw-flex tw-justify-center tw-flex-col tw-flex-1 gt-ellipsis"> 429 429 <a class="title muted" href="{{.Issue.Link}}" data-tooltip-content="#{{.Issue.Index}} {{.Issue.Title | RenderEmoji $.Context}}"> 430 430 #{{.Issue.Index}} {{.Issue.Title | RenderEmoji $.Context}} 431 431 </a> ··· 433 433 {{.Repository.OwnerName}}/{{.Repository.Name}} 434 434 </div> 435 435 </div> 436 - <div class="item-right gt-df gt-ac gt-m-2"> 436 + <div class="item-right tw-flex tw-content-center gt-m-2"> 437 437 {{if and $.CanCreateIssueDependencies (not $.Repository.IsArchived)}} 438 438 <a class="delete-dependency-button ci muted" data-id="{{.Issue.ID}}" data-type="blocking" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dependency.remove_info"}}"> 439 439 {{svg "octicon-trash" 16}} ··· 443 443 </div> 444 444 {{end}} 445 445 {{if .BlockingDependenciesNotPermitted}} 446 - <div class="item gt-df gt-ac gt-sb gt-ellipsis"> 446 + <div class="item tw-flex tw-content-center tw-justify-between gt-ellipsis"> 447 447 <span>{{ctx.Locale.TrN (len .BlockingDependenciesNotPermitted) "repo.issues.dependency.no_permission_1" "repo.issues.dependency.no_permission_n" (len .BlockingDependenciesNotPermitted)}}</span> 448 448 </div> 449 449 {{end}} ··· 456 456 </span> 457 457 <div class="ui relaxed divided list"> 458 458 {{range .BlockedByDependencies}} 459 - <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} gt-df gt-ac gt-sb"> 460 - <div class="item-left gt-df gt-jc gt-fc gt-f1 gt-ellipsis"> 459 + <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} tw-flex tw-content-center tw-justify-between"> 460 + <div class="item-left tw-flex tw-justify-center tw-flex-col tw-flex-1 gt-ellipsis"> 461 461 <a class="title muted" href="{{.Issue.Link}}" data-tooltip-content="#{{.Issue.Index}} {{.Issue.Title | RenderEmoji $.Context}}"> 462 462 #{{.Issue.Index}} {{.Issue.Title | RenderEmoji $.Context}} 463 463 </a> ··· 465 465 {{.Repository.OwnerName}}/{{.Repository.Name}} 466 466 </div> 467 467 </div> 468 - <div class="item-right gt-df gt-ac gt-m-2"> 468 + <div class="item-right tw-flex tw-content-center gt-m-2"> 469 469 {{if and $.CanCreateIssueDependencies (not $.Repository.IsArchived)}} 470 470 <a class="delete-dependency-button ci muted" data-id="{{.Issue.ID}}" data-type="blockedBy" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dependency.remove_info"}}"> 471 471 {{svg "octicon-trash" 16}} ··· 476 476 {{end}} 477 477 {{if $.CanCreateIssueDependencies}} 478 478 {{range .BlockedByDependenciesNotPermitted}} 479 - <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} gt-df gt-ac gt-sb"> 480 - <div class="item-left gt-df gt-jc gt-fc gt-f1 gt-ellipsis"> 479 + <div class="item dependency{{if .Issue.IsClosed}} is-closed{{end}} tw-flex tw-content-center tw-justify-between"> 480 + <div class="item-left tw-flex tw-justify-center tw-flex-col tw-flex-1 gt-ellipsis"> 481 481 <div class="gt-ellipsis"> 482 482 <span data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dependency.no_permission.can_remove"}}">{{svg "octicon-lock" 16}}</span> 483 483 <span class="title" data-tooltip-content="#{{.Issue.Index}} {{.Issue.Title | RenderEmoji $.Context}}"> ··· 488 488 {{.Repository.OwnerName}}/{{.Repository.Name}} 489 489 </div> 490 490 </div> 491 - <div class="item-right gt-df gt-ac gt-m-2"> 491 + <div class="item-right tw-flex tw-content-center gt-m-2"> 492 492 {{if and $.CanCreateIssueDependencies (not $.Repository.IsArchived)}} 493 493 <a class="delete-dependency-button ci muted" data-id="{{.Issue.ID}}" data-type="blocking" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.dependency.remove_info"}}"> 494 494 {{svg "octicon-trash" 16}} ··· 498 498 </div> 499 499 {{end}} 500 500 {{else if .BlockedByDependenciesNotPermitted}} 501 - <div class="item gt-df gt-ac gt-sb gt-ellipsis"> 501 + <div class="item tw-flex tw-content-center tw-justify-between gt-ellipsis"> 502 502 <span>{{ctx.Locale.TrN (len .BlockedByDependenciesNotPermitted) "repo.issues.dependency.no_permission_1" "repo.issues.dependency.no_permission_n" (len .BlockedByDependenciesNotPermitted)}}</span> 503 503 </div> 504 504 {{end}} ··· 555 555 <div class="divider"></div> 556 556 <div class="ui equal width compact grid"> 557 557 {{$issueReferenceLink := printf "%s#%d" .Issue.Repo.FullName .Issue.Index}} 558 - <div class="row gt-ac" data-tooltip-content="{{$issueReferenceLink}}"> 558 + <div class="row tw-content-center" data-tooltip-content="{{$issueReferenceLink}}"> 559 559 <span class="text column truncate">{{ctx.Locale.Tr "repo.issues.reference_link" $issueReferenceLink}}</span> 560 560 <button class="ui two wide button column gt-p-3" data-clipboard-text="{{$issueReferenceLink}}">{{svg "octicon-copy" 14}}</button> 561 561 </div>
+1 -1
templates/repo/issue/view_content/update_branch_by_merge.tmpl
··· 7 7 </div> 8 8 <div class="item-section-right"> 9 9 {{if and $.UpdateAllowed $.UpdateByRebaseAllowed}} 10 - <div class="gt-dib"> 10 + <div class="tw-inline-block"> 11 11 <div class="ui buttons update-button"> 12 12 <button class="ui button" data-do="{{$.Link}}/update" data-redirect="{{$.Link}}"> 13 13 <span class="button-text">
+1 -1
templates/repo/issue/view_title.tmpl
··· 8 8 <h1 class="gt-word-break"> 9 9 <span id="issue-title">{{RenderIssueTitle $.Context .Issue.Title ($.Repository.ComposeMetas ctx) | RenderCodeBlock}} <span class="index">#{{.Issue.Index}}</span> 10 10 </span> 11 - <div id="edit-title-input" class="ui input gt-f1 gt-hidden"> 11 + <div id="edit-title-input" class="ui input tw-flex-1 gt-hidden"> 12 12 <input value="{{.Issue.Title}}" maxlength="255" autocomplete="off"> 13 13 </div> 14 14 </h1>
+1 -1
templates/repo/migrate/migrate.tmpl
··· 5 5 {{template "repo/migrate/helper" .}} 6 6 <div class="ui cards migrate-entries"> 7 7 {{range .Services}} 8 - <a class="ui card migrate-entry gt-df gt-ac" href="{{AppSubUrl}}/repo/migrate?service_type={{.}}&org={{$.Org}}&mirror={{$.Mirror}}"> 8 + <a class="ui card migrate-entry tw-flex tw-content-center" href="{{AppSubUrl}}/repo/migrate?service_type={{.}}&org={{$.Org}}&mirror={{$.Mirror}}"> 9 9 {{if eq .Name "github"}} 10 10 {{svg "octicon-mark-github" 184 "gt-p-4"}} 11 11 {{else if eq .Name "gitlab"}}
+1 -1
templates/repo/projects/view.tmpl
··· 2 2 <div role="main" aria-label="{{.Title}}" class="page-content repository projects view-project"> 3 3 {{template "repo/header" .}} 4 4 <div class="ui container padded"> 5 - <div class="gt-df gt-sb gt-ac gt-mb-4"> 5 + <div class="tw-flex tw-justify-between tw-content-center gt-mb-4"> 6 6 {{template "repo/issue/navbar" .}} 7 7 <a class="ui small primary button" href="{{.RepoLink}}/issues/new/choose?project={{.Project.ID}}">{{ctx.Locale.Tr "repo.issues.new"}}</a> 8 8 </div>
+1 -1
templates/repo/pulls/fork.tmpl
··· 37 37 38 38 <div class="inline field"> 39 39 <label>{{ctx.Locale.Tr "repo.fork_from"}}</label> 40 - <a href="{{.ForkRepo.Link}}" class="gt-dib">{{.ForkRepo.FullName}}</a> 40 + <a href="{{.ForkRepo.Link}}" class="tw-inline-block">{{.ForkRepo.FullName}}</a> 41 41 </div> 42 42 <div class="inline required field {{if .Err_RepoName}}error{{end}}"> 43 43 <label for="repo_name">{{ctx.Locale.Tr "repo.repo_name"}}</label>
+1 -1
templates/repo/pulls/tab_menu.tmpl
··· 15 15 {{ctx.Locale.Tr "repo.pulls.tab_files"}} 16 16 <span class="ui small label">{{if .NumFiles}}{{.NumFiles}}{{else}}-{{end}}</span> 17 17 </a> 18 - <span class="item tw-ml-auto gt-pr-0 gt-font-bold gt-df gt-ac gt-gap-3"> 18 + <span class="item tw-ml-auto gt-pr-0 gt-font-bold tw-flex tw-content-center gt-gap-3"> 19 19 <span><span class="text green">{{if .Diff.TotalAddition}}+{{.Diff.TotalAddition}}{{end}}</span> <span class="text red">{{if .Diff.TotalDeletion}}-{{.Diff.TotalDeletion}}{{end}}</span></span> 20 20 <span class="diff-stats-bar"> 21 21 <div class="diff-stats-add-bar" style="width: {{Eval 100 "*" .Diff.TotalAddition "/" "(" .Diff.TotalAddition "+" .Diff.TotalDeletion "+" 0.0 ")"}}%"></div>
+3 -3
templates/repo/release/new.tmpl
··· 21 21 {{else}} 22 22 <input id="tag-name" name="tag_name" value="{{.tag_name}}" aria-label="{{ctx.Locale.Tr "repo.release.tag_name"}}" placeholder="{{ctx.Locale.Tr "repo.release.tag_name"}}" autofocus required maxlength="255"> 23 23 <input id="tag-name-editor" type="hidden" data-existing-tags="{{JsonUtils.EncodeToString .Tags}}" data-tag-helper="{{ctx.Locale.Tr "repo.release.tag_helper"}}" data-tag-helper-new="{{ctx.Locale.Tr "repo.release.tag_helper_new"}}" data-tag-helper-existing="{{ctx.Locale.Tr "repo.release.tag_helper_existing"}}"> 24 - <div id="tag-target-selector" class="gt-dib"> 24 + <div id="tag-target-selector" class="tw-inline-block"> 25 25 <span class="at">@</span> 26 26 <div class="ui selection dropdown"> 27 27 <input type="hidden" name="tag_target" value="{{.tag_target}}"> ··· 61 61 </div> 62 62 {{range .attachments}} 63 63 <div class="field flex-text-block" id="attachment-{{.ID}}"> 64 - <div class="flex-text-inline gt-f1"> 64 + <div class="flex-text-inline tw-flex-1"> 65 65 <input name="attachment-edit-{{.UUID}}" class="attachment_edit" required value="{{.Name}}"> 66 66 <input name="attachment-del-{{.UUID}}" type="hidden" value="false"> 67 67 <span class="ui text grey tw-whitespace-nowrap">{{.Size | FileSize}}</span> ··· 101 101 </div> 102 102 <span class="help">{{ctx.Locale.Tr "repo.release.prerelease_helper"}}</span> 103 103 <div class="divider gt-mt-0"></div> 104 - <div class="gt-df gt-je"> 104 + <div class="tw-flex tw-justify-end"> 105 105 {{if .PageIsEditRelease}} 106 106 <a class="ui small button" href="{{.RepoLink}}/releases"> 107 107 {{ctx.Locale.Tr "repo.release.cancel"}}
+2 -2
templates/repo/release_tag_header.tmpl
··· 2 2 {{$canReadCode := $.Permission.CanRead $.UnitTypeCode}} 3 3 4 4 {{if $canReadReleases}} 5 - <div class="gt-df"> 6 - <div class="gt-f1 gt-df gt-ac"> 5 + <div class="tw-flex"> 6 + <div class="tw-flex-1 tw-flex tw-content-center"> 7 7 <h2 class="ui compact small menu header small-menu-items"> 8 8 <a class="{{if and .PageIsReleaseList (not .PageIsSingleTag)}}active {{end}}item" href="{{.RepoLink}}/releases">{{ctx.Locale.PrettyNumber .NumReleases}} {{ctx.Locale.TrN .NumReleases "repo.release" "repo.releases"}}</a> 9 9 {{if $canReadCode}}
+3 -3
templates/repo/settings/branches.tmpl
··· 12 12 <p> 13 13 {{ctx.Locale.Tr "repo.settings.default_branch_desc"}} 14 14 </p> 15 - <form class="gt-df" action="{{.Link}}" method="post"> 15 + <form class="tw-flex" action="{{.Link}}" method="post"> 16 16 {{.CsrfTokenHtml}} 17 17 <input type="hidden" name="action" value="default_branch"> 18 18 {{if not .Repository.IsEmpty}} 19 - <div class="ui dropdown selection search gt-f1 gt-mr-3 tw-max-w-96"> 19 + <div class="ui dropdown selection search tw-flex-1 gt-mr-3 tw-max-w-96"> 20 20 {{svg "octicon-triangle-down" 14 "dropdown icon"}} 21 21 <input type="hidden" name="branch" value="{{.Repository.DefaultBranch}}"> 22 22 <div class="default text">{{.Repository.DefaultBranch}}</div> ··· 41 41 <div class="ui attached segment"> 42 42 <div class="flex-list"> 43 43 {{range .ProtectedBranches}} 44 - <div class="flex-item gt-ac"> 44 + <div class="flex-item tw-content-center"> 45 45 <div class="flex-item-main"> 46 46 <div class="flex-item-title"> 47 47 <div class="ui basic primary label">{{.RuleName}}</div>
+3 -3
templates/repo/settings/collaboration.tmpl
··· 7 7 <div class="ui attached segment"> 8 8 <div class="flex-list"> 9 9 {{range .Collaborators}} 10 - <div class="flex-item gt-ac"> 10 + <div class="flex-item tw-content-center"> 11 11 <div class="flex-item-leading"> 12 12 <a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 32}}</a> 13 13 </div> ··· 41 41 <div class="ui bottom attached segment"> 42 42 <form class="ui form" id="repo-collab-form" action="{{.Link}}" method="post"> 43 43 {{.CsrfTokenHtml}} 44 - <div id="search-user-box" class="ui search input gt-vm"> 44 + <div id="search-user-box" class="ui search input tw-align-middle"> 45 45 <input class="prompt" name="collaborator" placeholder="{{ctx.Locale.Tr "search.team_kind"}}" autocomplete="off" autofocus required> 46 46 </div> 47 47 <button class="ui primary button">{{ctx.Locale.Tr "repo.settings.add_collaborator"}}</button> ··· 89 89 {{if $allowedToChangeTeams}} 90 90 <form class="ui form" id="repo-collab-team-form" action="{{.Link}}/team" method="post"> 91 91 {{.CsrfTokenHtml}} 92 - <div id="search-team-box" class="ui search input gt-vm" data-org-name="{{.OrgName}}"> 92 + <div id="search-team-box" class="ui search input tw-align-middle" data-org-name="{{.OrgName}}"> 93 93 <input class="prompt" name="team" placeholder="{{ctx.Locale.Tr "search.team_kind"}}" autocomplete="off" autofocus required> 94 94 </div> 95 95 <button class="ui primary button">{{ctx.Locale.Tr "repo.settings.add_team"}}</button>
+1 -1
templates/repo/settings/githooks.tmpl
··· 11 11 {{range .Hooks}} 12 12 <div class="item truncated-item-container"> 13 13 <span class="text {{if .IsActive}}green{{else}}grey{{end}} gt-mr-3">{{svg "octicon-dot-fill" 22}}</span> 14 - <span class="text truncate gt-f1 gt-mr-3">{{.Name}}</span> 14 + <span class="text truncate tw-flex-1 gt-mr-3">{{.Name}}</span> 15 15 <a class="muted tw-float-right gt-p-3" href="{{$.RepoLink}}/settings/hooks/git/{{.Name|PathEscape}}"> 16 16 {{svg "octicon-pencil"}} 17 17 </a>
+4 -4
templates/repo/settings/options.tmpl
··· 132 132 <td>{{ctx.Locale.Tr "repo.settings.mirror_settings.direction.pull"}}</td> 133 133 <td>{{DateTime "full" .PullMirror.UpdatedUnix}}</td> 134 134 <td class="right aligned"> 135 - <form method="post" class="gt-dib"> 135 + <form method="post" class="tw-inline-block"> 136 136 {{.CsrfTokenHtml}} 137 137 <input type="hidden" name="action" value="mirror-sync"> 138 138 <button class="ui primary tiny button inline text-thin">{{ctx.Locale.Tr "repo.settings.sync_mirror"}}</button> ··· 230 230 > 231 231 {{svg "octicon-pencil" 14}} 232 232 </button> 233 - <form method="post" class="gt-dib"> 233 + <form method="post" class="tw-inline-block"> 234 234 {{$.CsrfTokenHtml}} 235 235 <input type="hidden" name="action" value="push-mirror-sync"> 236 236 <input type="hidden" name="push_mirror_id" value="{{.ID}}"> 237 237 <button class="ui primary tiny button" data-tooltip-content="{{ctx.Locale.Tr "repo.settings.sync_mirror"}}">{{svg "octicon-sync" 14}}</button> 238 238 </form> 239 - <form method="post" class="gt-dib"> 239 + <form method="post" class="tw-inline-block"> 240 240 {{$.CsrfTokenHtml}} 241 241 <input type="hidden" name="action" value="push-mirror-remove"> 242 242 <input type="hidden" name="push_mirror_id" value="{{.ID}}"> ··· 492 492 </div> 493 493 </div> 494 494 {{if not .Repository.IsMirror}} 495 - <div class="flex-item gt-ac"> 495 + <div class="flex-item tw-content-center"> 496 496 <div class="flex-item-main"> 497 497 {{if .Repository.IsArchived}} 498 498 <div class="flex-item-title">{{ctx.Locale.Tr "repo.settings.unarchive.header"}}</div>
+1 -1
templates/repo/settings/tags.tmpl
··· 106 106 </td> 107 107 <td class="right aligned"> 108 108 <a class="ui tiny primary button" href="{{$.RepoLink}}/settings/tags/{{.ID}}">{{ctx.Locale.Tr "edit"}}</a> 109 - <form class="gt-dib" action="{{$.RepoLink}}/settings/tags/delete" method="post"> 109 + <form class="tw-inline-block" action="{{$.RepoLink}}/settings/tags/delete" method="post"> 110 110 {{$.CsrfTokenHtml}} 111 111 <input type="hidden" name="id" value="{{.ID}}"> 112 112 <button class="ui tiny red button">{{ctx.Locale.Tr "remove"}}</button>
+1 -1
templates/repo/settings/webhook/base_list.tmpl
··· 15 15 {{range .Webhooks}} 16 16 <div class="item truncated-item-container"> 17 17 <span class="text {{if eq .LastStatus 1}}green{{else if eq .LastStatus 2}}red{{else}}grey{{end}} gt-mr-3">{{svg "octicon-dot-fill" 22}}</span> 18 - <div class="text truncate gt-f1 gt-mr-3"> 18 + <div class="text truncate tw-flex-1 gt-mr-3"> 19 19 <a title="{{.URL}}" href="{{$.BaseLink}}/{{.ID}}">{{.URL}}</a> 20 20 </div> 21 21 <a class="muted gt-p-3" href="{{$.BaseLink}}/{{.ID}}">{{svg "octicon-pencil"}}</a>
+1 -1
templates/repo/settings/webhook/history.tmpl
··· 17 17 <div class="ui list"> 18 18 {{range .History}} 19 19 <div class="item"> 20 - <div class="flex-text-block gt-sb"> 20 + <div class="flex-text-block tw-justify-between"> 21 21 <div class="flex-text-inline"> 22 22 {{if .IsSucceed}} 23 23 <span class="text green">{{svg "octicon-check"}}</span>
+4 -4
templates/repo/tag/list.tmpl
··· 5 5 {{template "base/alert" .}} 6 6 {{template "repo/release_tag_header" .}} 7 7 <h4 class="ui top attached header"> 8 - <div class="five wide column gt-df gt-ac"> 8 + <div class="five wide column tw-flex tw-content-center"> 9 9 {{svg "octicon-tag" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.release.tags"}} 10 10 </div> 11 11 </h4> ··· 18 18 <td class="tag"> 19 19 <h3 class="release-tag-name gt-mb-3"> 20 20 {{if $canReadReleases}} 21 - <a class="gt-df gt-ac" href="{{$.RepoLink}}/releases/tag/{{.TagName | PathEscapeSegments}}" rel="nofollow">{{.TagName}}</a> 21 + <a class="tw-flex tw-content-center" href="{{$.RepoLink}}/releases/tag/{{.TagName | PathEscapeSegments}}" rel="nofollow">{{.TagName}}</a> 22 22 {{else}} 23 - <a class="gt-df gt-ac" href="{{$.RepoLink}}/src/tag/{{.TagName | PathEscapeSegments}}" rel="nofollow">{{.TagName}}</a> 23 + <a class="tw-flex tw-content-center" href="{{$.RepoLink}}/src/tag/{{.TagName | PathEscapeSegments}}" rel="nofollow">{{.TagName}}</a> 24 24 {{end}} 25 25 </h3> 26 - <div class="download gt-df gt-ac"> 26 + <div class="download tw-flex tw-content-center"> 27 27 {{if $.Permission.CanRead $.UnitTypeCode}} 28 28 {{if .CreatedUnix}} 29 29 <span class="gt-mr-3">{{svg "octicon-clock" 16 "gt-mr-2"}}{{TimeSinceUnix .CreatedUnix ctx.Locale}}</span>
+3 -3
templates/repo/view_file.tmpl
··· 25 25 </div> 26 26 {{end}} 27 27 28 - <h4 class="file-header ui top attached header gt-df gt-ac gt-sb gt-fw"> 29 - <div class="file-header-left gt-df gt-ac gt-py-3 gt-pr-4"> 28 + <h4 class="file-header ui top attached header tw-flex tw-content-center tw-justify-between tw-flex-wrap"> 29 + <div class="file-header-left tw-flex tw-content-center gt-py-3 gt-pr-4"> 30 30 {{if .ReadmeInList}} 31 31 {{svg "octicon-book" 16 "gt-mr-3"}} 32 32 <strong><a class="default-link muted" href="#readme">{{.FileName}}</a></strong> ··· 34 34 {{template "repo/file_info" .}} 35 35 {{end}} 36 36 </div> 37 - <div class="file-header-right file-actions gt-df gt-ac gt-fw"> 37 + <div class="file-header-right file-actions tw-flex tw-content-center tw-flex-wrap"> 38 38 {{if .HasSourceRenderedToggle}} 39 39 <div class="ui compact icon buttons"> 40 40 <a href="?display=source" class="ui mini basic button {{if .IsDisplayingSource}}active{{end}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_source"}}">{{svg "octicon-code" 15}}</a>
+1 -1
templates/repo/wiki/new.tmpl
··· 3 3 {{template "repo/header" .}} 4 4 <div class="ui container"> 5 5 {{template "base/alert" .}} 6 - <div class="ui header flex-text-block gt-sb"> 6 + <div class="ui header flex-text-block tw-justify-between"> 7 7 {{ctx.Locale.Tr "repo.wiki.new_page"}} 8 8 {{if .PageIsWikiEdit}} 9 9 <a class="ui tiny primary button" href="{{.RepoLink}}/wiki?action=_new">{{ctx.Locale.Tr "repo.wiki.new_page_button"}}</a>
+1 -1
templates/repo/wiki/pages.tmpl
··· 2 2 <div role="main" aria-label="{{.Title}}" class="page-content repository wiki pages"> 3 3 {{template "repo/header" .}} 4 4 <div class="ui container"> 5 - <h2 class="ui header gt-df gt-ac gt-sb"> 5 + <h2 class="ui header tw-flex tw-content-center tw-justify-between"> 6 6 <span>{{ctx.Locale.Tr "repo.wiki.pages"}}</span> 7 7 <span> 8 8 {{if and .CanWriteWiki (not .Repository.IsMirror)}}
+4 -4
templates/shared/actions/runner_edit.tmpl
··· 7 7 {{template "base/disable_form_autofill"}} 8 8 {{.CsrfTokenHtml}} 9 9 <div class="runner-basic-info"> 10 - <div class="field gt-dib gt-mr-4"> 10 + <div class="field tw-inline-block gt-mr-4"> 11 11 <label>{{ctx.Locale.Tr "actions.runners.status"}}</label> 12 12 <span class="ui {{if .Runner.IsOnline}}green{{else}}basic{{end}} label">{{.Runner.StatusLocaleName ctx.Locale}}</span> 13 13 </div> 14 - <div class="field gt-dib gt-mr-4"> 14 + <div class="field tw-inline-block gt-mr-4"> 15 15 <label>{{ctx.Locale.Tr "actions.runners.last_online"}}</label> 16 16 <span>{{if .Runner.LastOnline}}{{TimeSinceUnix .Runner.LastOnline ctx.Locale}}{{else}}{{ctx.Locale.Tr "never"}}{{end}}</span> 17 17 </div> 18 - <div class="field gt-dib gt-mr-4"> 18 + <div class="field tw-inline-block gt-mr-4"> 19 19 <label>{{ctx.Locale.Tr "actions.runners.labels"}}</label> 20 20 <span> 21 21 {{range .Runner.AgentLabels}} ··· 23 23 {{end}} 24 24 </span> 25 25 </div> 26 - <div class="field gt-dib gt-mr-4"> 26 + <div class="field tw-inline-block gt-mr-4"> 27 27 <label>{{ctx.Locale.Tr "actions.runners.owner_type"}}</label> 28 28 <span data-tooltip-content="{{.Runner.BelongsToOwnerName}}">{{.Runner.BelongsToOwnerType.LocaleString ctx.Locale}}</span> 29 29 </div>
+4 -4
templates/shared/search/code/results.tmpl
··· 1 - <div class="flex-text-block gt-fw"> 1 + <div class="flex-text-block tw-flex-wrap"> 2 2 {{range $term := .SearchResultLanguages}} 3 3 <a class="ui {{if eq $.Language $term.Language}}primary{{end}} basic label gt-m-0" 4 4 href="?q={{$.Keyword}}{{if ne $.Language $term.Language}}&l={{$term.Language}}{{end}}&fuzzy={{$.IsFuzzy}}"> ··· 12 12 {{range $result := .SearchResults}} 13 13 {{$repo := or $.Repo (index $.RepoMaps .RepoID)}} 14 14 <div class="diff-file-box diff-box file-content non-diff-file-content repo-search-result"> 15 - <h4 class="ui top attached normal header gt-df gt-fw"> 15 + <h4 class="ui top attached normal header tw-flex tw-flex-wrap"> 16 16 {{if not $.Repo}} 17 - <span class="file gt-f1"> 17 + <span class="file tw-flex-1"> 18 18 <a rel="nofollow" href="{{$repo.Link}}">{{$repo.FullName}}</a> 19 19 {{if $repo.IsArchived}} 20 20 <span class="ui basic label">{{ctx.Locale.Tr "repo.desc.archived"}}</span> ··· 22 22 - {{.Filename}} 23 23 </span> 24 24 {{else}} 25 - <span class="file gt-f1">{{.Filename}}</span> 25 + <span class="file tw-flex-1">{{.Filename}}</span> 26 26 {{end}} 27 27 <a role="button" class="ui basic tiny button" rel="nofollow" href="{{$repo.Link}}/src/{{if $.CodeIndexerDisabled}}branch{{else}}commit{{end}}/{{$result.CommitID | PathEscape}}/{{.Filename | PathEscapeSegments}}">{{ctx.Locale.Tr "repo.diff.view_file"}}</a> 28 28 </h4>
+2 -2
templates/shared/searchbottom.tmpl
··· 1 - <div class="ui bottom attached table segment gt-df gt-ac gt-sb"> 2 - <div class="gt-df gt-ac gt-ml-4"> 1 + <div class="ui bottom attached table segment tw-flex tw-content-center tw-justify-between"> 2 + <div class="tw-flex tw-content-center gt-ml-4"> 3 3 {{if .result.Language}} 4 4 <i class="color-icon gt-mr-3" style="background-color: {{.result.Color}}"></i>{{.result.Language}} 5 5 {{end}}
+1 -1
templates/shared/secrets/add_list.tmpl
··· 14 14 {{if .Secrets}} 15 15 <div class="flex-list"> 16 16 {{range .Secrets}} 17 - <div class="flex-item gt-ac"> 17 + <div class="flex-item tw-content-center"> 18 18 <div class="flex-item-leading"> 19 19 {{svg "octicon-key" 32}} 20 20 </div>
+1 -1
templates/shared/user/org_profile_avatar.tmpl
··· 2 2 <div class="ui container"> 3 3 <div class="ui vertically grid head"> 4 4 <div class="column"> 5 - <div class="ui header gt-df gt-ac gt-word-break"> 5 + <div class="ui header tw-flex tw-content-center gt-word-break"> 6 6 {{ctx.AvatarUtils.Avatar . 100}} 7 7 <span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span> 8 8 <span class="org-visibility">
+3 -3
templates/shared/user/profile_big_avatar.tmpl
··· 1 1 <div id="profile-avatar-card" class="ui card"> 2 - <div id="profile-avatar" class="content gt-df"> 2 + <div id="profile-avatar" class="content tw-flex"> 3 3 {{if eq .SignedUserID .ContextUser.ID}} 4 4 <a class="image" href="{{AppSubUrl}}/user/settings" data-tooltip-content="{{ctx.Locale.Tr "user.change_avatar"}}"> 5 5 {{/* the size doesn't take affect (and no need to take affect), image size(width) should be controlled by the parent container since this is not a flex layout*/}} ··· 30 30 {{if .ContextUser.Location}} 31 31 <li> 32 32 {{svg "octicon-location"}} 33 - <span class="gt-f1">{{.ContextUser.Location}}</span> 33 + <span class="tw-flex-1">{{.ContextUser.Location}}</span> 34 34 {{if .ContextUserLocationMapURL}} 35 35 <a href="{{.ContextUserLocationMapURL}}" rel="nofollow noreferrer" data-tooltip-content="{{ctx.Locale.Tr "user.show_on_map"}}"> 36 36 {{svg "octicon-link-external"}} ··· 41 41 {{if (eq .SignedUserID .ContextUser.ID)}} 42 42 <li> 43 43 {{svg "octicon-mail"}} 44 - <a class="gt-f1" href="mailto:{{.ContextUser.Email}}" rel="nofollow">{{.ContextUser.Email}}</a> 44 + <a class="tw-flex-1" href="mailto:{{.ContextUser.Email}}" rel="nofollow">{{.ContextUser.Email}}</a> 45 45 <a href="{{AppSubUrl}}/user/settings#privacy-user-settings"> 46 46 {{if .ShowUserEmail}} 47 47 <i data-tooltip-content="{{ctx.Locale.Tr "user.email_visibility.limited"}}">
+1 -1
templates/shared/variables/variable_list.tmpl
··· 16 16 {{if .Variables}} 17 17 <div class="flex-list"> 18 18 {{range .Variables}} 19 - <div class="flex-item gt-ac"> 19 + <div class="flex-item tw-content-center"> 20 20 <div class="flex-item-leading"> 21 21 {{svg "octicon-pencil" 32}} 22 22 </div>
+2 -2
templates/status/500.tmpl
··· 17 17 <body> 18 18 <div class="full height"> 19 19 <nav class="ui secondary menu"> 20 - <div class="ui container gt-df"> 21 - <div class="item gt-f1"> 20 + <div class="ui container tw-flex"> 21 + <div class="item tw-flex-1"> 22 22 <a href="{{AppSubUrl}}/" aria-label="{{ctx.Locale.Tr "home"}}"> 23 23 <img width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}" aria-hidden="true"> 24 24 </a>
+3 -3
templates/user/auth/signin_inner.tmpl
··· 54 54 {{ctx.Locale.Tr "sign_in_or"}} 55 55 </div> 56 56 <div id="oauth2-login-navigator" class="gt-py-2"> 57 - <div class="gt-df gt-fc gt-jc"> 58 - <div id="oauth2-login-navigator-inner" class="gt-df gt-fc gt-fw gt-ac gt-gap-3"> 57 + <div class="tw-flex tw-flex-col tw-justify-center"> 58 + <div id="oauth2-login-navigator-inner" class="tw-flex tw-flex-col tw-flex-wrap tw-content-center gt-gap-3"> 59 59 {{range $provider := .OAuth2Providers}} 60 - <a class="{{$provider.Name}} ui button gt-df gt-ac gt-jc gt-py-3 tw-w-full oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$provider.DisplayName}}"> 60 + <a class="{{$provider.Name}} ui button tw-flex tw-content-center tw-justify-center gt-py-3 tw-w-full oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$provider.DisplayName}}"> 61 61 {{$provider.IconHTML 28}} 62 62 {{ctx.Locale.Tr "sign_in_with_provider" $provider.DisplayName}} 63 63 </a>
+3 -3
templates/user/auth/signup_inner.tmpl
··· 59 59 {{ctx.Locale.Tr "sign_in_or"}} 60 60 </div> 61 61 <div id="oauth2-login-navigator" class="gt-py-2"> 62 - <div class="gt-df gt-fc gt-jc"> 63 - <div id="oauth2-login-navigator-inner" class="gt-df gt-fc gt-fw gt-ac gt-gap-3"> 62 + <div class="tw-flex tw-flex-col tw-justify-center"> 63 + <div id="oauth2-login-navigator-inner" class="tw-flex tw-flex-col tw-flex-wrap tw-content-center gt-gap-3"> 64 64 {{range $provider := .OAuth2Providers}} 65 - <a class="{{$provider.Name}} ui button gt-df gt-ac gt-jc gt-py-3 tw-w-full oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$provider.DisplayName}}"> 65 + <a class="{{$provider.Name}} ui button tw-flex tw-content-center tw-justify-center gt-py-3 tw-w-full oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$provider.DisplayName}}"> 66 66 {{$provider.IconHTML 28}} 67 67 {{ctx.Locale.Tr "sign_in_with_provider" $provider.DisplayName}} 68 68 </a>
+1 -1
templates/user/auth/webauthn.tmpl
··· 10 10 {{template "base/alert" .}} 11 11 <p>{{ctx.Locale.Tr "webauthn_sign_in"}}</p> 12 12 </div> 13 - <div class="ui attached segment gt-df gt-ac gt-jc gt-gap-2 gt-py-3"> 13 + <div class="ui attached segment tw-flex tw-content-center tw-justify-center gt-gap-2 gt-py-3"> 14 14 <div class="is-loading" style="width: 40px; height: 40px"></div> 15 15 {{ctx.Locale.Tr "webauthn_press_button"}} 16 16 </div>
+1 -1
templates/user/dashboard/feeds.tmpl
··· 84 84 {{$push := ActionContent2Commits .}} 85 85 {{$repoLink := (.GetRepoLink ctx)}} 86 86 {{$repo := .Repo}} 87 - <div class="gt-df gt-fc gt-gap-2"> 87 + <div class="tw-flex tw-flex-col gt-gap-2"> 88 88 {{range $push.Commits}} 89 89 {{$commitLink := printf "%s/commit/%s" $repoLink .Sha1}} 90 90 <div class="flex-text-block">
+1 -1
templates/user/dashboard/milestones.tmpl
··· 79 79 {{svg "octicon-milestone" 16}} 80 80 <a class="muted" href="{{.Repo.Link}}/milestone/{{.ID}}">{{.Name}}</a> 81 81 </h3> 82 - <div class="gt-df gt-ac"> 82 + <div class="tw-flex tw-content-center"> 83 83 <span class="gt-mr-3">{{.Completeness}}%</span> 84 84 <progress value="{{.Completeness}}" max="100"></progress> 85 85 </div>
+6 -6
templates/user/notification/notification_div.tmpl
··· 1 1 <div role="main" aria-label="{{.Title}}" class="page-content user notification" id="notification_div" data-sequence-number="{{.SequenceNumber}}"> 2 2 <div class="ui container"> 3 3 {{$notificationUnreadCount := call .NotificationUnreadCount}} 4 - <div class="gt-df gt-ac gt-sb gt-mb-4"> 4 + <div class="tw-flex tw-content-center tw-justify-between gt-mb-4"> 5 5 <div class="small-menu-items ui compact tiny menu"> 6 6 <a class="{{if eq .Status 1}}active {{end}}item" href="{{AppSubUrl}}/notifications?q=unread"> 7 7 {{ctx.Locale.Tr "notification.unread"}} ··· 25 25 <div class="gt-p-0"> 26 26 <div id="notification_table"> 27 27 {{if not .Notifications}} 28 - <div class="gt-df gt-ac gt-fc gt-p-4"> 28 + <div class="tw-flex tw-content-center tw-flex-col gt-p-4"> 29 29 {{svg "octicon-inbox" 56 "gt-mb-4"}} 30 30 {{if eq .Status 1}} 31 31 {{ctx.Locale.Tr "notification.no_unread"}} ··· 35 35 </div> 36 36 {{else}} 37 37 {{range $notification := .Notifications}} 38 - <div class="notifications-item gt-df gt-ac gt-fw gt-gap-3 gt-p-3" id="notification_{{.ID}}" data-status="{{.Status}}"> 38 + <div class="notifications-item tw-flex tw-content-center tw-flex-wrap gt-gap-3 gt-p-3" id="notification_{{.ID}}" data-status="{{.Status}}"> 39 39 <div class="notifications-icon gt-ml-3 gt-mr-2 tw-self-start gt-mt-2"> 40 40 {{if .Issue}} 41 41 {{template "shared/issueicon" .Issue}} ··· 43 43 {{svg "octicon-repo" 16 "text grey"}} 44 44 {{end}} 45 45 </div> 46 - <a class="notifications-link gt-df gt-f1 gt-fc silenced" href="{{.Link ctx}}"> 46 + <a class="notifications-link tw-flex tw-flex-1 tw-flex-col silenced" href="{{.Link ctx}}"> 47 47 <div class="notifications-top-row gt-font-13"> 48 48 {{.Repository.FullName}} {{if .Issue}}<span class="text light-3">#{{.Issue.Index}}</span>{{end}} 49 49 {{if eq .Status 3}} ··· 60 60 </span> 61 61 </div> 62 62 </a> 63 - <div class="notifications-updated gt-ac gt-mr-3"> 63 + <div class="notifications-updated tw-content-center gt-mr-3"> 64 64 {{if .Issue}} 65 65 {{TimeSinceUnix .Issue.UpdatedUnix ctx.Locale}} 66 66 {{else}} 67 67 {{TimeSinceUnix .UpdatedUnix ctx.Locale}} 68 68 {{end}} 69 69 </div> 70 - <div class="notifications-buttons gt-ac gt-je gt-gap-2 gt-px-2"> 70 + <div class="notifications-buttons tw-content-center tw-justify-end gt-gap-2 gt-px-2"> 71 71 {{if ne .Status 3}} 72 72 <form action="{{AppSubUrl}}/notifications/status" method="post"> 73 73 {{$.CsrfTokenHtml}}
+3 -3
templates/user/notification/notification_subscriptions.tmpl
··· 11 11 </div> 12 12 <div class="ui bottom attached active tab segment"> 13 13 {{if eq .Status 1}} 14 - <div class="gt-df gt-sb"> 15 - <div class="gt-df"> 14 + <div class="tw-flex tw-justify-between"> 15 + <div class="tw-flex"> 16 16 <div class="small-menu-items ui compact tiny menu"> 17 17 <a class="{{if eq .State "all"}}active {{end}}item" href="?sort={{$.SortType}}&state=all&issueType={{$.IssueType}}&labels={{$.Labels}}"> 18 18 {{ctx.Locale.Tr "all"}} ··· 27 27 </a> 28 28 </div> 29 29 </div> 30 - <div class="gt-df gt-sb"> 30 + <div class="tw-flex tw-justify-between"> 31 31 <div class="ui right aligned secondary filter menu labels"> 32 32 <!-- Type --> 33 33 <div class="ui dropdown type jump item">
+1 -1
templates/user/settings/account.tmpl
··· 46 46 <form action="{{AppSubUrl}}/user/settings/account/email" class="ui form" method="post"> 47 47 {{$.CsrfTokenHtml}} 48 48 <input name="_method" type="hidden" value="NOTIFICATION"> 49 - <div class="gt-df gt-fw gt-gap-3"> 49 + <div class="tw-flex tw-flex-wrap gt-gap-3"> 50 50 <div class="ui selection dropdown"> 51 51 <input name="preference" type="hidden" value="{{.EmailNotificationsPreference}}"> 52 52 {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+1 -1
templates/user/settings/applications_oauth2_list.tmpl
··· 4 4 {{ctx.Locale.Tr "settings.oauth2_application_create_description"}} 5 5 </div> 6 6 {{range .Applications}} 7 - <div class="flex-item gt-ac"> 7 + <div class="flex-item tw-content-center"> 8 8 <div class="flex-item-leading"> 9 9 {{svg "octicon-apps" 32}} 10 10 </div>
+2 -2
templates/user/settings/repos.tmpl
··· 30 30 <span><a href="{{$repo.BaseRepo.Link}}">{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}</a></span> 31 31 {{end}} 32 32 {{else}} 33 - <span class="icon gt-dib gt-pt-3">{{svg "octicon-file-directory-fill"}}</span> 34 - <span class="name gt-dib gt-pt-3">{{$.ContextUser.Name}}/{{$dir}}</span> 33 + <span class="icon tw-inline-block gt-pt-3">{{svg "octicon-file-directory-fill"}}</span> 34 + <span class="name tw-inline-block gt-pt-3">{{$.ContextUser.Name}}/{{$dir}}</span> 35 35 <div class="tw-float-right"> 36 36 {{if $.allowAdopt}} 37 37 <button class="ui button primary show-modal gt-p-3" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{ctx.Locale.Tr "repo.adopt_preexisting_label"}}</span></button>
+1 -1
templates/user/settings/security/openid.tmpl
··· 7 7 {{ctx.Locale.Tr "settings.openid_desc"}} 8 8 </div> 9 9 {{range .OpenIDs}} 10 - <div class="flex-item gt-ac"> 10 + <div class="flex-item tw-content-center"> 11 11 <div class="flex-item-leading"> 12 12 {{svg "fontawesome-openid" 20}} 13 13 </div>
+1 -1
templates/webhook/new.tmpl
··· 1 1 <h4 class="ui top attached header"> 2 2 {{.CustomHeaderTitle}} 3 3 <div class="ui right type dropdown"> 4 - <div class="text gt-df gt-ac"> 4 + <div class="text tw-flex tw-content-center"> 5 5 {{template "shared/webhook/icon" (dict "Size" 20 "HookType" .ctxData.HookType)}} 6 6 {{ctx.Locale.Tr (print "repo.settings.web_hook_name_" .ctxData.HookType)}} 7 7 </div>
+1 -1
tests/integration/release_test.go
··· 285 285 286 286 tagNames := make([]string, 0, 5) 287 287 tags.Each(func(i int, s *goquery.Selection) { 288 - tagNames = append(tagNames, s.Find(".tag a.gt-df.gt-ac").Text()) 288 + tagNames = append(tagNames, s.Find(".tag a.tw-flex.tw-content-center").Text()) 289 289 }) 290 290 291 291 assert.EqualValues(t, []string{"v1.0", "delete-tag", "v1.1"}, tagNames)
-4
web_src/css/actions.css
··· 14 14 color: var(--color-red-light); 15 15 } 16 16 17 - .runner-container .runner-basic-info .gt-dib { 18 - margin-right: 1em; 19 - } 20 - 21 17 .runner-container .runner-new-text { 22 18 color: var(--color-white); 23 19 }
-10
web_src/css/helpers.css
··· 2 2 Gitea's tailwind-style CSS helper classes have `gt-` prefix. 3 3 Gitea's private styles use `g-` prefix. 4 4 */ 5 - .gt-df { display: flex !important; } 6 - .gt-dib { display: inline-block !important; } 7 - .gt-ac { align-items: center !important; } 8 - .gt-jc { justify-content: center !important; } 9 - .gt-je { justify-content: flex-end !important; } 10 - .gt-sb { justify-content: space-between !important; } 11 - .gt-fc { flex-direction: column !important; } 12 - .gt-f1 { flex: 1 !important; } 13 - .gt-fw { flex-wrap: wrap !important; } 14 - .gt-vm { vertical-align: middle !important; } 15 5 16 6 .gt-mono { 17 7 font-family: var(--fonts-monospace) !important;
+1 -1
web_src/js/components/ActionRunStatus.vue
··· 28 28 }; 29 29 </script> 30 30 <template> 31 - <span class="gt-df gt-ac" :data-tooltip-content="localeStatus" v-if="status"> 31 + <span class="tw-flex tw-content-center" :data-tooltip-content="localeStatus" v-if="status"> 32 32 <SvgIcon name="octicon-check-circle-fill" class="text green" :size="size" :class-name="className" v-if="status === 'success'"/> 33 33 <SvgIcon name="octicon-skip" class="text grey" :size="size" :class-name="className" v-else-if="status === 'skipped'"/> 34 34 <SvgIcon name="octicon-clock" class="text yellow" :size="size" :class-name="className" v-else-if="status === 'waiting'"/>
+1 -1
web_src/js/components/DiffCommitSelector.vue
··· 240 240 @click.meta.exact="commitClicked(commit.id, true)" 241 241 @click.shift.exact.stop.prevent="commitClickedShift(commit)" 242 242 > 243 - <div class="gt-f1 gt-df gt-fc gt-gap-2"> 243 + <div class="tw-flex-1 tw-flex tw-flex-col gt-gap-2"> 244 244 <div class="gt-ellipsis commit-list-summary"> 245 245 {{ commit.summary }} 246 246 </div>
+2 -2
web_src/js/components/DiffFileList.vue
··· 38 38 <template> 39 39 <ol class="diff-stats gt-m-0" ref="root" v-if="store.fileListIsVisible"> 40 40 <li v-for="file in store.files" :key="file.NameHash"> 41 - <div class="gt-font-semibold gt-df gt-ac pull-right"> 41 + <div class="gt-font-semibold tw-flex tw-content-center pull-right"> 42 42 <span v-if="file.IsBin" class="gt-ml-1 gt-mr-3">{{ store.binaryFileMessage }}</span> 43 43 {{ file.IsBin ? '' : file.Addition + file.Deletion }} 44 44 <span v-if="!file.IsBin" class="diff-stats-bar gt-mx-3" :data-tooltip-content="store.statisticsMessage.replace('%d', (file.Addition + file.Deletion)).replace('%d', file.Addition).replace('%d', file.Deletion)"> ··· 50 50 <a class="file gt-mono" :href="'#diff-' + file.NameHash">{{ file.Name }}</a> 51 51 </li> 52 52 <li v-if="store.isIncomplete" class="gt-pt-2"> 53 - <span class="file gt-df gt-ac gt-sb">{{ store.tooManyFilesMessage }} 53 + <span class="file tw-flex tw-content-center tw-justify-between">{{ store.tooManyFilesMessage }} 54 54 <a :class="['ui', 'basic', 'tiny', 'button', store.isLoadingNewData ? 'disabled' : '']" @click.stop="loadMoreData">{{ store.showMoreMessage }}</a> 55 55 </span> 56 56 </li>
+1 -1
web_src/js/components/DiffFileTreeItem.vue
··· 37 37 > 38 38 <!-- file --> 39 39 <SvgIcon name="octicon-file"/> 40 - <span class="gt-ellipsis gt-f1">{{ item.name }}</span> 40 + <span class="gt-ellipsis tw-flex-1">{{ item.name }}</span> 41 41 <SvgIcon :name="getIconForDiffType(item.file.Type).name" :class="getIconForDiffType(item.file.Type).classes"/> 42 42 </a> 43 43 <div v-else class="item-directory" :title="item.name" @click.stop="collapsed = !collapsed">
+1 -1
web_src/js/components/PullRequestMergeForm.vue
··· 136 136 </div> 137 137 </form> 138 138 139 - <div v-if="!showActionForm" class="gt-df"> 139 + <div v-if="!showActionForm" class="tw-flex"> 140 140 <!-- the merge button --> 141 141 <div class="ui buttons merge-button" :class="[mergeForm.emptyCommit ? 'grey' : mergeForm.allOverridableChecksOk ? 'primary' : 'red']" @click="toggleActionForm(true)"> 142 142 <button class="ui button">
+2 -2
web_src/js/components/RepoBranchTagSelector.vue
··· 245 245 </script> 246 246 <template> 247 247 <div class="ui dropdown custom"> 248 - <button class="branch-dropdown-button gt-ellipsis ui basic small compact button gt-df gt-m-0" @click="menuVisible = !menuVisible" @keyup.enter="menuVisible = !menuVisible"> 249 - <span class="text gt-df gt-ac gt-mr-2"> 248 + <button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex gt-m-0" @click="menuVisible = !menuVisible" @keyup.enter="menuVisible = !menuVisible"> 249 + <span class="text tw-flex tw-content-center gt-mr-2"> 250 250 <template v-if="release">{{ textReleaseCompare }}</template> 251 251 <template v-else> 252 252 <svg-icon v-if="isViewTag" name="octicon-tag"/>
+2 -2
web_src/js/components/RepoCodeFrequency.vue
··· 144 144 </script> 145 145 <template> 146 146 <div> 147 - <div class="ui header gt-df gt-ac gt-sb"> 147 + <div class="ui header tw-flex tw-content-center tw-justify-between"> 148 148 {{ isLoading ? locale.loadingTitle : errorText ? locale.loadingTitleFailed: `Code frequency over the history of ${repoLink.slice(1)}` }} 149 149 </div> 150 - <div class="gt-df ui segment main-graph"> 150 + <div class="tw-flex ui segment main-graph"> 151 151 <div v-if="isLoading || errorText !== ''" class="gt-tc tw-m-auto"> 152 152 <div v-if="isLoading"> 153 153 <SvgIcon name="octicon-sync" class="gt-mr-3 job-status-rotate"/>
+5 -5
web_src/js/components/RepoContributors.vue
··· 303 303 </script> 304 304 <template> 305 305 <div> 306 - <div class="ui header gt-df gt-ac gt-sb"> 306 + <div class="ui header tw-flex tw-content-center tw-justify-between"> 307 307 <div> 308 308 <relative-time 309 309 v-if="xAxisMin > 0" ··· 352 352 </div> 353 353 </div> 354 354 </div> 355 - <div class="gt-df ui segment main-graph"> 355 + <div class="tw-flex ui segment main-graph"> 356 356 <div v-if="isLoading || errorText !== ''" class="gt-tc tw-m-auto"> 357 357 <div v-if="isLoading"> 358 358 <SvgIcon name="octicon-sync" class="gt-mr-3 job-status-rotate"/> ··· 374 374 :key="index" 375 375 v-memo="[sortedContributors, type]" 376 376 > 377 - <div class="ui top attached header gt-df gt-f1"> 377 + <div class="ui top attached header tw-flex tw-flex-1"> 378 378 <b class="ui right">#{{ index + 1 }}</b> 379 379 <a :href="contributor.home_link"> 380 - <img class="ui avatar gt-vm" height="40" width="40" :src="contributor.avatar_link"> 380 + <img class="ui avatar tw-align-middle" height="40" width="40" :src="contributor.avatar_link"> 381 381 </a> 382 382 <div class="gt-ml-3"> 383 383 <a v-if="contributor.home_link !== ''" :href="contributor.home_link"><h4>{{ contributor.name }}</h4></a> 384 384 <h4 v-else class="contributor-name"> 385 385 {{ contributor.name }} 386 386 </h4> 387 - <p class="gt-font-12 gt-df gt-gap-2"> 387 + <p class="gt-font-12 tw-flex gt-gap-2"> 388 388 <strong v-if="contributor.total_commits">{{ contributor.total_commits.toLocaleString() }} {{ locale.contributionType.commits }}</strong> 389 389 <strong v-if="contributor.total_additions" class="text green">{{ contributor.total_additions.toLocaleString() }}++ </strong> 390 390 <strong v-if="contributor.total_deletions" class="text red">
+2 -2
web_src/js/components/RepoRecentCommits.vue
··· 121 121 </script> 122 122 <template> 123 123 <div> 124 - <div class="ui header gt-df gt-ac gt-sb"> 124 + <div class="ui header tw-flex tw-content-center tw-justify-between"> 125 125 {{ isLoading ? locale.loadingTitle : errorText ? locale.loadingTitleFailed: "Number of commits in the past year" }} 126 126 </div> 127 - <div class="gt-df ui segment main-graph"> 127 + <div class="tw-flex ui segment main-graph"> 128 128 <div v-if="isLoading || errorText !== ''" class="gt-tc tw-m-auto"> 129 129 <div v-if="isLoading"> 130 130 <SvgIcon name="octicon-sync" class="gt-mr-3 job-status-rotate"/>
+1 -1
web_src/js/features/repo-issue-content.js
··· 16 16 $dialog = $(` 17 17 <div class="ui modal content-history-detail-dialog"> 18 18 ${svg('octicon-x', 16, 'close icon inside')} 19 - <div class="header gt-df gt-ac gt-sb"> 19 + <div class="header tw-flex tw-content-center tw-justify-between"> 20 20 <div>${itemTitleHtml}</div> 21 21 <div class="ui dropdown dialog-header-options gt-mr-5 gt-hidden"> 22 22 ${i18nTextOptions}
+1 -1
web_src/js/features/repo-issue-list.js
··· 108 108 // the content is provided by backend IssuePosters handler 109 109 const processedResults = []; // to be used by dropdown to generate menu items 110 110 for (const item of resp.results) { 111 - let html = `<img class="ui avatar gt-vm" src="${htmlEscape(item.avatar_link)}" aria-hidden="true" alt="" width="20" height="20"><span class="gt-ellipsis">${htmlEscape(item.username)}</span>`; 111 + let html = `<img class="ui avatar tw-align-middle" src="${htmlEscape(item.avatar_link)}" aria-hidden="true" alt="" width="20" height="20"><span class="gt-ellipsis">${htmlEscape(item.username)}</span>`; 112 112 if (item.full_name) html += `<span class="search-fullname gt-ml-3">${htmlEscape(item.full_name)}</span>`; 113 113 processedResults.push({value: item.user_id, name: html}); 114 114 }