Javasatu:TemplateStyles
Centang biru | Halaman ini mendokumentasikan editing guideline di Wikipedia bahasa Indonesia. Isinya adalah standar yang telah diterima secara luas dan para pengguna harus berusaha untuk mengikutinya, meskipun sebaiknya diperlakukan dengan akal sehat, dan pengecualian mungkin berlaku pada situasi tertentu. Setiap suntingan yang substansial di halaman ini harus menggambarkan konsensus. Jika ragu, diskusikan terlebih dahulu di halaman pembicaraannya. |
TemplateStyles memungkinkan halaman CSS kustom digunakan untuk menata konten tanpa administrator antarmuka untuk mengedit CSS di seluruh situs. TemplateStyles memudahkan editor untuk menata gaya template; misalnya, templat yang menggunakan CSS di seluruh situs untuk tampilan seluler atau tampilan lainnya (mis. Timeless) saat ini berdampak negatif terhadap tampilan templat.
Guidelines[sunting sumber]
- Style harus hanya diimplementasikan hanya pada templat terkait. Ini mungkin juga berlaku untuk teks wiki terdekat yang sangat relevan di mana templat tersebut digunakan. (Misalnya, ada banyak templat tabel yang seharusnya memiliki TemplatStyles yang disediakan seluruhnya dalam templat, atau yang mungkin memberikan legenda pada tabel teks wiki.) Jika tidak, akan membingungkan jika menambahkan templat ke satu bagian halaman akan sepenuhnya atau mengubah sebagian tampilan atau gaya bagian halaman yang tidak terkait.
- Halaman style harus dikaitkan dengan templat atau grup templat tertentu, dan diberi nama yang sesuai. Hal ini memungkinkan halaman gaya mudah diidentifikasi dan diedit. Secara umum, ini berarti halaman gaya harus merupakan subhalaman dari templat terkait, misalnya: Templat:templatSaya/styles.css atau Templat:templatSaya/styles-foo.css, bukan Templat:styles-foo.css maupun Templat:foo.css.
- Umumnya menurut MediaWiki coding conventions for CSS. Beberapa hal spesifik:
- Use selectors that are highly likely to be unique to the template being used. This reduces the chance of conflicting CSS rules arising accidentally. Examples: Use .myTemplate-row rather than .row or .myTemplate tr rather than tr.
- Avoid using #id per the conventions. HTML IDs are supposed to be unique on a page. Templates are rarely used uniquely, and those that are initially single-use-per-page are often later used in unanticipated ways. Use classes instead of IDs for styling.
- Avoid using !important per the conventions, except in mobile views to override style input from the associated template. Use of
!important
in TemplateStyles is exceptionally difficult to override because of loading order of styles (personal CSS then TemplateStyles).
- In templates intended to be substituted, or those likely to be substituted, use {{ifsubst}} to remove the TemplateStyles tag. Example: {{allcaps}}.
- Inline styles may be used as the "if substed" case in a substituted template. Example: {{smallcaps}}.
- Images that do not require attribution (i.e. those in the public domain) are the only images that may be used as background images. For normal file usage, attribution is provided on the file description page, accessed by clicking the image. This is not possible if the image is being used as the background.
- The protection level of style pages should match that of their associated template. If a template is high-risk, then its styles are also high-risk, and should have the same protection. If a template is not high-risk, then vandalism to cause chaos could be achieved just by editing the template itself. A higher protection level for the style page would encourage editors to add inline styles to the template, since the template would be editable but the style page would not. Any templates using CSS pages with the wrong protection level will be categorized in Templates using TemplateStyles with a different protection level.
- Remember to add
/* {{pp-template}} */
to any protected CSS pages to ensure that they display the appropriate lock icon. Protected templates using CSS pages that lack the lock icon will be categorized in Templates using TemplateStyles without padlocks.
Note that the Manual of Style, including the Accessibility guidelines, still applies.
Workflow for conversion[sunting sumber]
- In Template:myTemplate, identify all of the inline styles that can be moved to a separate stylesheet.
- Create Template:myTemplate/styles.css containing all the classes that will replace the inline styles. Use template-specific class names where possible.
- In Template:myTemplate (or its Template:myTemplate/sandbox if you want to test first), add
<templatestyles src="myTemplate/styles.css" />
(you don't need to specify the Template: namespace). It's probably best at the top so that it is obvious and to avoid a flash of unstyled content, but it will need to be on its own line if the template begins with wiki markup that has to start on a new line (e.g. wiki-table). - Amend the template (or sandbox) to replace the inline styles with the classes you defined in Template:myTemplate/styles.css
- Do as much checking as you can. If you tested in the sandbox you can check the testcases page where it exists, but specifically check that the styles you affected render properly.
- Specifically, for templates meant to be used inline, check to see if there are uses inside of links. TemplateStyles templates will not work inside links (right now).
- If you used the sandbox, either make an edit request for the main template or do the update if you are confident of your changes.
- Request or amend the protection level of Template:myTemplate/styles.css to match that of Template:myTemplate as necessary.
- Add
{{Uses TemplateStyles}}
to the template's documentation to show which TemplateStyles stylesheets it uses.
Tips[sunting sumber]
- Uses of TemplateStyles stylesheets are recorded just like template transclusion and Scribunto module invocation. Special:WhatLinksHere and the "Templates used in this preview" section beneath the edit form will work for them in the usual manner.
- To search for TemplateStyles stylesheets, you can [[Special:Search/all: contentmodel:sanitized-css|search for Templat:Tt]]. See also mw:Help:CirrusSearch#Contentmodel.
- When
{{Uses TemplateStyles}}
is placed on a template's documentation, it adds the template to Category:Templates using TemplateStyles. If the TemplateStyles stylesheet has a different protection level, the template will be tracked in Category:Templates using TemplateStyles with a different protection level (0 pages). - TemplateStyles experiments can be created at Template:TemplateStyles sandbox, e.g. for use in Module:Sandbox module experiments.
Overriding TemplateStyles[sunting sumber]
Because of the way TemplateStyles is implemented, overriding TemplateStyles in your personal CSS requires a little more effort than normal. The rules on a specific TemplateStyles sheet are not the full CSS rules, nor can you match the selectors to override them.
- Each selector is 'hoisted' to
.mw-parser-output
, so to override a rule in a TemplateStyles sheet that looks like.documentation {}
, a naive override in your personal CSS file would need to look like.mw-parser-output .documentation {}
. - However, in the HTML each TemplateStyles style is always placed after your personal CSS file loads. Accordingly, the new rule would need to be more specific. That can come in a couple ways. The easiest is to select the HTML element also as in:
.mw-parser-output div.documentation {}
. Another way would be to double one of the class selectors, as in.mw-parser-output.mw-parser-output .documentation {}
or.mw-parser-output .documentation.documentation {}
. This latter way is a little more future-proof but looks a little weirder. - Lastly,
!important
can always override styles in your personal CSS. The usual caveats regarding!important
apply. Prefer one of the two options in bullet two if possible. (You must do this to override inline styles, regardless of any of the above; some templates cannot move everything to TemplateStyles per the flexibility given to template users. Implementers of templates should consider whether parameters likestyle
andwidth
are actually necessary. See also phab:T200632.)
Examples[sunting sumber]
- mw:Help:TemplateStyles/examples
- Template:Thermometer and Template:Thermometer/styles.css give a simple demonstration of how TemplateStyles may be mixed with inline styles (where a parameter is passed to change one or more styles)
See also[sunting sumber]
- Wikipedia:Lua
- MediaWiki talk:Common.css/to do, where conversion from Common.css, Mobile.css, and skin.css to TemplateStyles is being tracked