Module:NavCard
De Nefald Wiki
Autres actions
La documentation pour ce module peut être créée à Module:NavCard/doc
local p = {}
function p.main(frame)
local args = frame:getParent().args
local titre = args['titre'] or 'Titre'
local description = args['description'] or 'Description'
local lien = args['lien'] or titre
local image = args['image'] or ''
local couleur = args['couleur'] or '#3b82f6'
-- Lien cliquable avec div dedans
local html = mw.html.create('a')
:attr('href', mw.uri.encode(lien, 'WIKI'))
:addClass('nav-card-link')
:css('text-decoration', 'none')
:css('display', 'inline-block')
local card = html:tag('div')
:addClass('nav-card')
:css('background', couleur)
:css('width', '280px')
:css('height', '160px')
:css('border-radius', '12px')
:css('position', 'relative')
:css('overflow', 'hidden')
:css('margin', '10px')
-- Image de fond si présente
if image ~= '' then
card:tag('div')
:addClass('nav-card-bg')
:css('background-image', 'url(/images/' .. image .. ')')
:css('background-size', 'cover')
:css('position', 'absolute')
:css('top', '0')
:css('left', '0')
:css('width', '100%')
:css('height', '100%')
:css('opacity', '0.3')
end
-- Contenu texte
local content = card:tag('div')
:addClass('nav-card-content')
:css('position', 'absolute')
:css('bottom', '0')
:css('left', '0')
:css('right', '0')
:css('padding', '20px')
:css('background', 'linear-gradient(transparent, rgba(0,0,0,0.7))')
content:tag('h3')
:css('color', 'white')
:css('margin', '0 0 8px 0')
:wikitext(titre)
content:tag('p')
:css('color', 'rgba(255,255,255,0.9)')
:css('margin', '0')
:wikitext(description)
return tostring(html)
end
return p