diff options
Diffstat (limited to 'docs/content/doc/developers/guidelines-frontend.en-us.md')
-rw-r--r-- | docs/content/doc/developers/guidelines-frontend.en-us.md | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/docs/content/doc/developers/guidelines-frontend.en-us.md b/docs/content/doc/developers/guidelines-frontend.en-us.md index 7f4d87d90..9ac317f40 100644 --- a/docs/content/doc/developers/guidelines-frontend.en-us.md +++ b/docs/content/doc/developers/guidelines-frontend.en-us.md @@ -47,6 +47,8 @@ We recommend [Google HTML/CSS Style Guide](https://google.github.io/styleguide/h 7. Clarify variable types, prefer `elem.disabled = true` instead of `elem.setAttribute('disabled', 'anything')`, prefer `$el.prop('checked', var === 'yes')` instead of `$el.prop('checked', var)`. 8. Use semantic elements, prefer `<button class="ui button">` instead of `<div class="ui button">`. 9. Avoid unnecessary `!important` in CSS, add comments to explain why it's necessary if it can't be avoided. +10. Avoid mixing different events in one event listener, prefer to use individual event listeners for every event. +11. Custom event names are recommended to use `ce-` prefix. ### Accessibility / ARIA @@ -83,6 +85,9 @@ It's not recommended to use `async` event listeners, which may lead to problems. The reason is that the code after await is executed outside the event dispatch. Reference: https://github.com/github/eslint-plugin-github/blob/main/docs/rules/async-preventdefault.md +If an event listener must be `async`, the `e.preventDefault()` should be before any `await`, +it's recommended to put it at the beginning of the function. + If we want to call an `async` function in a non-async context, it's recommended to use `const _promise = asyncFoo()` to tell readers that this is done by purpose, we want to call the async function and ignore the Promise. @@ -106,6 +111,22 @@ However, there are still some special cases, so the current guideline is: * Vue components are recommended to use `v-if` and `v-show` to show/hide elements. * Go template code should use Gitea's `.gt-hidden` and `showElem()/hideElem()/toggleElem()`, see more details in `.gt-hidden`'s comment. +### Styles and Attributes in Go HTML Template + +It's recommended to use: + +```html +<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div> +``` + +instead of: + +```html +<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div> +``` + +to make the code more readable. + ### Legacy Code A lot of legacy code already existed before this document's written. It's recommended to refactor legacy code to follow the guidelines. |