Unfortunately, theme-source is the only way to dyamically assign a class to a portable infobox. Therefore, we can't use a separate parameter as a border toggle. However, what we can do is use a standard format to how the parameter input is modified to accomplish the toggle. The CSS will need to be added to Themes.css just like the other theme cusotmizations we already made. It will also require you to revise the current CSS. Let's do that first. First, you will need to rewrite all of the CSS parts that are ".pi-theme-<theme-source>" to "[class*="pi-theme-<theme-source>"]". For example, you currently have:
/*-------------*/
/*--GENERAL C--*/
/*-------------*/
.pi-theme-default,
.pi-theme-black0,
.pi-theme-company,
.pi-theme-technology,
.pi-theme-website,
/*-------------*/
/*--VOCALOID1--*/
/*-------------*/
.pi-theme-meiko,
.pi-theme-kaito,
/*-------------*/
/*--CV SERIES--*/
/*-------------*/
.pi-theme-hatsune-miku,
.pi-theme-kagamine,
.pi-theme-kagamine-len,
.pi-theme-kagamine-rin,
.pi-theme-megurine-luka {
border-color: #999;
}
You would need to change it to this:
/*-------------*/
/*--GENERAL C--*/
/*-------------*/
.pi-theme-default,
.pi-theme-black0,
.pi-theme-company,
.pi-theme-technology,
.pi-theme-website,
/*-------------*/
/*--VOCALOID1--*/
/*-------------*/
[class*="pi-theme-meiko"],
[class*="pi-theme-kaito"],
/*-------------*/
/*--CV SERIES--*/
/*-------------*/
[class*="pi-theme-hatsune-miku"],
[class*="pi-theme-kagamine"],
[class*="pi-theme-kagamine-len"],
[class*="pi-theme-kagamine-rin"],
[class*="pi-theme-megurine-luka"] {
border-color: #999;
}
Next, to add the actual text border, something like this:
.pi-theme-hatsune-miku-border .pi-title,
.pi-theme-hatsune-miku-border .pi-header {
text-shadow: -2px 0 0 red, 2px 0 0 red, 0 -2px 0 red, 0 2px 0 red;
}
Now, if the template is used like this:
{{Infobox synth
| theme = hatsune miku
}}
It should appear as it currently does. However, if the template is used like this:
{{Infobox synth
| theme = hatsune miku border
}}
The text in the areas you specified should have the border around them.
I would also like to note that I am not sure why Bunai Di has "theme="default"" in your template. At the very least, I would give it a more meaningful value like "theme="synth"". If the reason it is "default" is because you want to apply it to all infoboxes, then you don't need to use the theme attribute at all. Just write generic CSS that targets all infoboxes.