How do I create a custom jQuery UI theme?

Skab Unikke Mobiloplevelser: En Dybdegående Guide til jQuery Mobile Temaer

01/02/2022

Rating: 4.01 (14589 votes)

I en verden, hvor mobile enheder er blevet uundværlige, er behovet for responsive og visuelt tiltalende mobilapplikationer og websites større end nogensinde. jQuery Mobile, et robust HTML5-baseret brugergrænsefladesystem, er designet til at hjælpe udviklere med at skabe disse oplevelser med lethed. En af dets mest imponerende funktioner er det fleksible temasystem, der giver dig fuld kontrol over udseendet og følelsen af dine projekter. Dette temasystem adskiller sig ved sin evne til at kombinere farver og teksturer med strukturelle stilarter, hvilket åbner op for en verden af designmuligheder. Lad os udforske, hvordan du kan udnytte dette system til at skabe unikke og engagerende brugerflader.

Does jQuery Mobile have a theme?
jQuery Mobile has a robust theme framework that supports up to 26 sets of toolbar, content, and button colors, called a "swatch". The framework comes with two defined themes A and B (light and dark) which can be used readily, removed, or overwritten.
Indholdsfortegnelse

Hvad er et jQuery Mobile-tema?

Et jQuery Mobile-tema er mere end blot en samling farver; det er en omfattende ramme, der definerer det visuelle udtryk for din mobilapplikation eller dit website. Kernen i temasystemet er adskillelsen mellem farve/tekstur og de strukturelle stilarter, som definerer elementers polstring og dimensioner. Dette betyder, at du kan ændre farveskemaet uden at forstyrre layoutet, hvilket giver en utrolig fleksibilitet i designprocessen.

Hvert tema inkluderer flere globale indstillinger, såsom skrifttypefamilie, skygger for overlejringer og afrundede hjørner for knapper og bokse. Disse globale indstillinger sikrer et ensartet udtryk på tværs af hele din applikation. Udover de globale indstillinger kan et tema indeholde op til 26 forskellige farvegrupper, kendt som 'swatches', som er navngivet med bogstaver fra A til Z. Hver swatch definerer farveværdier for bjælker, indholdsblokke, knapper og listeelementer, samt tekstskygger for skrifttyper.

En af de store forbedringer i jQuery Mobile temasystemet, sammenlignet med ældre systemer som jQuery UI's ThemeRoller, er udnyttelsen af moderne CSS3-egenskaber. Dette betyder, at afrundede hjørner, boks- og tekstskygger samt gradients nu opnås via CSS3 i stedet for billeder. Resultatet er en betydeligt mere letvægt temafil, der reducerer serveranmodninger og forbedrer indlæsningstiderne for din mobile applikation. Dette gør jQuery Mobile-temaer både kraftfulde og effektive.

Swatches forklaret – Farvepaletten til din app

Swatches er hjertet i jQuery Mobiles farvesystem. De er foruddefinerede farvesæt, der kan anvendes på forskellige elementer i din brugerflade for at skabe visuel variation og hierarki. Standardtemaet leveres med to primære swatches, 'A' og 'B', som repræsenterer henholdsvis lyse og mørke farver, men kan udvides til op til 26. Nyere standardtemaer inkluderer typisk 5 swatches (A, B, C, D, E) med specifikke anvendelsesformål:

  • 'A' (typisk sort/mørk): Højeste visuelle prioritet, ofte brugt til overskrifter og footers.
  • 'B' (typisk blå): Sekundær visuel prioritet.
  • 'C' (typisk grå/lysgrå): Baseline-niveau, standard for sideindhold for at maksimere kontrasten til 'A'-overskrifter.
  • 'D': Alternativt sekundært niveau.
  • 'E' (typisk gul): Accentfarve, ofte brugt til advarsler eller fremhævelser.

Hvis ingen swatch-bogstav er angivet for et element, arver det som standard 'A' for overskrifter og footers, og 'C' for sideindhold. Elementer inden for en container arver typisk deres swatch fra deres forælder, hvilket sikrer konsistens.

Der findes også en særlig 'active' swatch, som i standardtemaet er en lys blå farve. Denne swatch bruges konsekvent til at indikere et aktivt eller valgt element, uanset den individuelle swatch på den givne widget. Dette gælder for eksempel for tænd/sluk-knapper og navigationsvalg. Denne 'active' swatch kan ikke overstyres via markup, da den er designet til at give klar og ensartet brugerfeedback.

What is the ThemeRoller mobile tool?
The ThemeRoller Mobile tool makes it easy to create custom-designed themes for your mobile site or app. Just pick colors, then share your theme URL, or download the theme and drop it into your site. A beautiful and minimalist theme pack and generator for jQuery Mobile 1.3.1.

Bemærk, at indlæsningsdialogen og fejlmeddelelser ikke arver et swatch-tema. Indlæsningsdialogen bruger som standard swatch 'A' (hvid i standardtemaet), og fejlmeddelelsen bruger swatch 'E' (gul i standardtemaet). Disse standardværdier kan dog konfigureres globalt.

Temakomponenter og Swatches i praksis

jQuery Mobile temasystemet er designet til at give dig kontrol over udseendet af alle standardkomponenter.

Bjælker (Headers og Footers): Standardtemaet tildeler swatch 'A' til alle overskrifter og footers, da disse typisk har høj visuel prioritet i en applikation. Du kan nemt ændre farven på en bjælke ved at tilføje data-theme-attributten til din header eller footer og angive et andet swatch-bogstav (f.eks. data-theme="b" eller data-theme="d").

Indholdsblokke: For indholdsblokke er standarden swatch 'C', hvilket sikrer maksimal kontrast til de ofte mørkere overskrifter. Ligesom med bjælker kan du anvende en anden swatch på en indholdsblok ved hjælp af data-theme-attributten.

Lister & Knapper: Hver swatch inkluderer også standardstilarter for interaktive elementer som listeelementer og knapper. Knapper har tre interaktionstilstande: normal, hover/fokus og trykket. Som standard arver knapper placeret i en bjælke automatisk et swatch-bogstav, der matcher deres forældrebjælke eller indholdsboks, hvilket integrerer dem visuelt i forældretemaet. Hvis du ønsker at give en knap visuel vægt, kan du indstille en alternativ swatch-farve ved at tilføje data-theme="a" til ankeret. Når en alternativ swatch-farve er indstillet på en knap i markup, overstyrer frameworket ikke denne farve, selvom forældretemaet ændres.

How do I upgrade a jQuery Mobile theme?
To upgrade a theme to 1.4.5: Click the Import button, paste in your uncompressed theme, then tweak and download the upgraded version. Copy and paste the contents of any uncompressed jQuery Mobile theme file to load it in for editing.

Ikoner: Frameworket indeholder et kernesæt af standardikoner, der kan tildeles enhver knap. For at minimere downloadstørrelsen af kerneikonerne inkluderer jQuery Mobile kun disse ikoner i hvid og tilføjer automatisk en semi-transparent sort cirkel bag ikonet for at sikre god kontrast på alle baggrundsfarver.

Oprettelse af brugerdefinerede temaer med ThemeRoller

Den nemmeste og mest anbefalede måde at skabe brugerdefinerede temaer på er med ThemeRoller-værktøjet. Dette onlineværktøj giver dig mulighed for at bygge et tema, der består af op til 26 swatches, downloade den nyligt oprettede CSS-fil og bruge den direkte i dit projekt.

Oprettelse af Theme Swatches

ThemeRoller tilbyder en brugervenlig træk-og-slip-grænseflade. Som standard tilbyder ThemeRoller tre swatches (A, B og C), men du kan nemt tilføje flere ved at trykke på '+'-tegnet nær 'A', 'B' og 'C' fanerne i venstre menu. Du kan bruge de tilbudte standardfarver, Adobe Kuler-farver eller oprette dine egne. Du opretter dit tema ved at trække den valgte farve til det valgte element i den swatch, du ønsker. Du kan yderligere redigere din swatch fra menuen, f.eks. ved at udvide de forskellige elementdele og udføre detaljeret redigering af tekstfarve, tekstskygge størrelse, position og farve, samt gradienten, der bruges på hvert element.

Download af det oprettede tema

Når du er tilfreds med de swatches, du har oprettet, kan du downloade temaet som en zip-fil. Du skal blot trykke på 'Download theme zip file'-knappen og indtaste navnet på dit tema i pop-up-vinduet. Zip-filen indeholder en index.html-fil (et eksempel på, hvordan du bruger temaet) og en themes-mappe, der indeholder dine tema-CSS-filer og de ikoner, der bruges af jQuery Mobile.

Brug af det downloadede tema

For at begynde at bruge dit tema skal du blot tilføje din tema-CSS-fil til <head>-sektionen af din side førjquery.mobile.structure-filen. Dette sikrer, at dine farve- og teksturdefinitioner anvendes korrekt oven på frameworkets strukturelle stilarter. Et typisk eksempel ser således ud:

<!DOCTYPE html> <html> <head> <title>Min jQuery Mobile side</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/themes/mit-brugerdefinerede-tema.css"> <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css"> <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> </head> <body> <!-- Dit indhold her --> </body> </html>

ThemeRoller Interface

Grænsefladen er opdelt i tre hovedzoner: venstre kolonne med inspektørpanelet, QuickSwatch/Kuler-bjælken øverst og forhåndsvisningsvinduet nedenunder. Inspektørpanelet giver dig mulighed for at indstille globale tema-indstillinger og finjustere individuelle stilmuligheder for hver swatch. QuickSwatch-bjælken lader dig trække og slippe farver direkte på elementer i forhåndsvisningen, og værktøjet beregner automatisk tekstfarve, skygge, kanter og gradients. Forhåndsvisningspanelet viser et eksempel på almindelige jQuery Mobile widgets, der opdateres i realtid, når du foretager ændringer.

Understøttede browsere

ThemeRoller er et udviklerværktøj og understøtter de nyeste versioner af populære desktopbrowsere som Chrome, Firefox og Safari. Selvom det fungerer i IE9, anbefales det ikke at bruge denne browser til at oprette temaer, da den ikke understøtter CSS3-gradients fuldt ud.

What is the theming system used in jQuery Mobile?
The theming system used in jQuery Mobile is similar to the ThemeRoller system in jQuery UI. It takes advantage of CSS3 properties to add rounded corners, box and text shadow and gradients instead of images, allowing the theme file to be very lightweight and reducing server requests.

Opgradering og import af temaer

Hvis du ønsker at opgradere et eksisterende jQuery Mobile-tema til en nyere version af biblioteket, eller blot redigere et tema, du tidligere har downloadet, er ThemeRoller-værktøjets importfunktion uundværlig. Du skal blot klikke på 'Import'-knappen, indsætte indholdet af din ukomprimerede temafil (vigtigt: det skal være den ukomprimerede version) i tekstfeltet, og systemet vil parse temaet til et redigerbart format. Dette gør det utrolig nemt at foretage justeringer eller generere en opdateret version af dit tema, der er kompatibel med den nyeste jQuery Mobile-version. Den downloadede zip-fil indeholder både en komprimeret (til produktion) og en ukomprimeret (til redigering) version af temaet, så husk at gemme den ukomprimerede version.

Manuel tematilpasning og overstyring

Selvom ThemeRoller er et fantastisk værktøj til hurtig tilpasning, giver jQuery Mobile dig også mulighed for at redigere temaer manuelt direkte i CSS-filen. Dette er især nyttigt for små justeringer eller når du ønsker at tilføje yderligere swatches ud over de standardmæssige A-Z. Du kan simpelthen kopiere en blok af swatch-stilarter, omdøbe klasserne med et nyt swatch-bogstav og justere farverne efter behov.

jQuery Mobile anvender et rigt sæt af temaklasser, der kan anvendes direkte på dit markup for at anvende farver, teksturer og skrifttypeformatering fra dit tema til ethvert element. Dette er særligt nyttigt, når du opretter dine egne brugerdefinerede layout-elementer eller UI-widgets. Nogle almindelige temaklasser inkluderer:

  • ui-bar-(a-z): Anvender bjælketema-stilarter for den valgte swatch.
  • ui-body-(a-z): Anvender indholdsblok-tema-stilarter for den valgte swatch.
  • ui-btn-up-(a-z): Anvender knap/klikbart element tema-stilarter for den valgte swatch (bruges sammen med ui-btn-hover og ui-btn-down for interaktionstilstande).
  • ui-corner-all: Anvender temaets globale border-radius for afrundede hjørner (for containere eller grupperede elementer).
  • ui-shadow: Anvender temaets globale drop shadow (CSS box-shadow).
  • ui-disabled: Anvender deaktiveret udseende (reducerer opacitet til 30%, skjuler markør, forhindrer interaktion).

Overstyring af temaer: Temaerne er ment som et solidt udgangspunkt, men er designet til at blive tilpasset. Da alt styres af CSS, er det nemt at bruge et webinspektionsværktøj til at identificere de stil-egenskaber, du ønsker at ændre. Vi anbefaler at tilføje et eksternt stylesheet til <head>, placeret efter strukturen og tema-stylesheet-referencerne. Dette holder dine overstyringer adskilt fra bibliotekskoden og gør det nemt at opdatere til nyere versioner af biblioteket uden at miste dine tilpasninger.

Sammenligning: jQuery Mobile vs. jQuery UI Theming

Selvom både jQuery Mobile og jQuery UI har et temasystem, deler de navnet ThemeRoller, men jQuery Mobile's system har nogle vigtige forbedringer, der er skræddersyet til mobile miljøer. Hovedpunkterne er:

  • CSS3-udnyttelse: jQuery Mobile bruger i højere grad CSS3-egenskaber som afrundede hjørner, boks- og tekstskygger samt gradients i stedet for billeder. Dette gør temafilen meget letvægt og reducerer antallet af serveranmodninger, hvilket er afgørende for mobil ydeevne.
  • Flere farve-swatches: jQuery Mobile tillader op til 26 unikke swatches per tema, hvilket giver en næsten ubegrænset variation i designmuligheder. Hver swatch består af en header-bjælke, indholdsblok og knap-tilstande, der frit kan blandes og matches for at skabe visuel tekstur og rigere designs.
  • Forenklet ikon-sæt: Et forenklet ikon-sæt i en sprite reducerer billedvægten yderligere, hvilket bidrager til den samlede lette natur af frameworket.

Tabel: Oversigt over standard Swatches

For at give et hurtigt overblik over de mest almindelige swatches og deres anvendelse i standardtemaet, se tabellen nedenfor:

SwatchStandard AnvendelseStandard Farve (i standardtema)
AHøj visuel prioritet (overskrifter, footers, indlæsningsdialog)Lys (eller sort i ældre versioner)
BSekundær prioritet (f.eks. visse listeelementer)Blå
CBaseline-niveau (sideindhold, tællebobler)Grå / Lysgrå
DAlternativ sekundær(Varierer, ofte en mørkere gråtone)
EAccentfarve (f.eks. fejlmeddelelser)Gul
ActiveValgt/aktiv tilstandLys blå

Ofte Stillede Spørgsmål (FAQ)

Hvor mange swatches kan jeg oprette i et jQuery Mobile-tema?

Du kan oprette op til 26 unikke swatches, navngivet med bogstaverne A til Z, hvilket giver dig en enorm fleksibilitet i dit design.

Kan jeg ændre standardfarverne for et jQuery Mobile-tema?

Ja, absolut! Den nemmeste måde er at bruge ThemeRoller-værktøjet til at tilpasse farverne for eksisterende swatches eller oprette helt nye. Du kan også redigere CSS-filen manuelt for mere finjusterede ændringer.

How to create custom layouts in jQuery Mobile?
You can write your own custom styles to create custom layouts by adding an additional stylesheet to the head after the jQuery Mobile stylesheet. jQuery Mobile includes a diverse set of common listviews that are coded as lists with a data-role="listview" added. Here is a simple linked list that has a role of listview.

Hvordan anvender jeg et specifikt tema eller en swatch på et element?

Du kan anvende et tema eller en specifik swatch ved at bruge data-theme-attributten på dine HTML-elementer (f.eks. <div data-role="header" data-theme="b">). Alternativt kan du anvende de direkte CSS-klasser som ui-bar-a eller ui-body-c for mere granulær kontrol.

Hvad er 'active' swatch og hvad bruges den til?

Den 'active' swatch er en særlig swatch (typisk lys blå) der bruges til konsekvent at indikere, når et element er valgt eller aktivt. Dette gælder for eksempel for navigationsknapper, der er valgt, eller tændte toggle-knapper. Den kan ikke overstyres via markup for at sikre ensartet brugerfeedback.

Er ThemeRoller-værktøjet svært at bruge?

Nej, ThemeRoller er designet til at være utrolig brugervenligt med en intuitiv træk-og-slip-grænseflade. Det gør det nemt for både begyndere og erfarne udviklere at skabe og tilpasse temaer visuelt.

Hvor skal jeg placere min brugerdefinerede tema-CSS-fil?

Din brugerdefinerede tema-CSS-fil skal placeres i <head>-sektionen af din HTML-side, før referencen til jquery.mobile.structure.min.css. Dette sikrer, at dine stilregler prioriteres korrekt og overskriver standardstrukturens udseende.

Konklusion

jQuery Mobile's temasystem er en utrolig kraftfuld og fleksibel funktion, der giver udviklere mulighed for at skabe visuelt rige og unikke mobilapplikationer og websites. Med dets swatch-baserede struktur, udnyttelse af CSS3 for letvægt og ydeevne, samt det intuitive ThemeRoller-værktøj, er det nemmere end nogensinde at designe brugerflader, der skiller sig ud. Uanset om du vælger at bruge ThemeRoller for hurtig tilpasning eller dykker ned i den manuelle CSS-redigering for fuld kontrol, giver jQuery Mobile dig de værktøjer, du skal bruge for at levere enestående mobiloplevelser. Ved at forstå og udnytte dette system fuldt ud, kan du sikre, at dine projekter ikke blot fungerer fejlfrit, men også ser fantastiske ud på tværs af et væld af enheder.

Hvis du vil læse andre artikler, der ligner Skab Unikke Mobiloplevelser: En Dybdegående Guide til jQuery Mobile Temaer, kan du besøge kategorien Mobiludvikling.

Go up