BJÖRK - designet til at blive brugt. Igen og igen
BJÖRK
BJÖRK-serien er udviklet med fokus på både brugernes oplevelse og driftspersonalets daglige rutiner. Hvert element er gennemtænkt – fra de afrundede kanter, der øger sikkerheden, til den intuitive betjening. Puslebordet er ergonomisk og kan betjenes med én hånd, mens dispensere og håndtørrere fungerer berøringsfrit. Intet er tilfældigt – alt er skabt til at fungere i travle toiletmiljøer, døgnet rundt.
BJÖRK-serien forener skandinavisk design med høj brugervenlighed. Serien omfatter en række hygiejneløsniger med fælles formsprog og funktionel logik, hvilket gør det muligt at skabe sammenhængende og æstetiske løsninger uden at gå på kompromis med effektiviteten.
De enkle linjer gør produkterne nemme at integrere i ethvert miljø, og serien har modtaget internationale designpriser for at sætte nye standarder for hygiejneløsninger, der både fungerer i praksis og løfter helhedsindtrykket.
BJÖRK er designet i samarbejde med det danske designbureau VE2.
Prisvindende hygiejneserie
BJÖRK-serien kombinerer funktionalitet, æstetik og holdbarhed i et tidløst design – og er hædret med Red Dot Design Awards i 2015, 2017 og 2018. Priserne blev tildelt til to af seriens mest populære produkter: BJÖRK-håndtørreren og BJÖRK-puslebordet – begge anerkendt for deres nyskabende formgivning og gennemtænkte brugerfokus.
Vælg farven, der fuldender visionen
Hygiejneløsninger skal mere end fungere – de skal også understøtte helhedsudtrykket. Derfor kan BJÖRK-serien ligesom vores øvrige produktserier tilpasses alle klassiske RAL-farver eller jeres egen specifikke firmafarve. Fra hotellets eksklusive perlemor til børnehavens varme orange – eller netop i den farve, der binder arkitekturen og indretningen sammen i jeres projekt.
Dekorer med logo eller folietryk
BJÖRK-serien kan også tilpasses med jeres logo eller dekoreres med folietryk. Fra diskrete signaturer til markante brandudtryk – mulighederne gør det muligt at lade produkterne indgå som en naturlig del af indretningen og styrke virksomhedens visuelle identitet i projektet.
Se BJÖRK-serien her
Error executing template "Designs/Swift-v2/Paragraph/Swift-v2_ProductDefaultImage.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_54383a43615944e3b07b22ca1b7d95cb.<>c__DisplayClass0_0.<ExecuteAsync>b__2(MediaViewModel x) at System.Collections.Generic.List`1.RemoveAll(Predicate`1 match) at CompiledRazorTemplates.Dynamic.RazorEngine_54383a43615944e3b07b22ca1b7d95cb.ExecuteAsync() at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Ecommerce.ProductCatalog 3 @using Dynamicweb.Ecommerce.CustomerExperienceCenter.Favorites 4 5 @{ 6 ProductViewModel product = null; 7 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 8 { 9 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 10 } 11 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 12 { 13 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 14 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 15 16 if (productList?.Products is object) 17 { 18 product = productList.Products[0]; 19 } 20 } 21 } 22 23 @if (product is object) 24 { 25 string imagePath = product?.DefaultImage?.Value ?? ""; 26 string imagePathUrlEncoded = Dynamicweb.Context.Current.Server.UrlEncode(imagePath); 27 28 string ratio = Model.Item.GetRawValueString("ImageAspectRatio", ""); 29 ratio = ratio != "0" ? ratio : ""; 30 string ratioCssClass = ratio != "" ? " ratio" : ""; 31 string ratioVariable = ratio != "" ? "--bs-aspect-ratio: " + ratio : ""; 32 33 string width = Model.Item.GetRawValueString("Width", "auto"); 34 int smallImageSize = 640; 35 int largeImageSize = width == "auto" ? 1280 : Convert.ToInt32(width); 36 37 string ImageObjectFit = Model.Item.GetRawValueString("ImageObjectFit", "contain"); 38 39 string imagePathXs = "/Admin/Public/GetImage.ashx?width=" + smallImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 40 string imagePathS = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 41 string imagePathFallBack = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 42 43 bool showFavoritesSelector = !string.IsNullOrEmpty(Model.Item.GetString("ShowAddToFavorites")) ? Model.Item.GetBoolean("ShowAddToFavorites") : false; 44 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 45 bool anonymousUser = Pageview.User == null; 46 47 var favoriteParameters = new Dictionary<string, object>(); 48 if (!anonymousUser && showFavoritesSelector) 49 { 50 int defaultFavoriteListId = 0; 51 52 IEnumerable<FavoriteList> favoreiteLists = Pageview.User.GetFavoriteLists(); 53 if (favoreiteLists.Count() == 1) 54 { 55 foreach (FavoriteList list in favoreiteLists) 56 { 57 defaultFavoriteListId = list.ListId; 58 } 59 } 60 61 favoriteParameters.Add("ListId", defaultFavoriteListId); 62 } 63 64 MediaViewModel alternativeImage = new MediaViewModel(); 65 if (Model.Item.GetBoolean("ShowAlternativeImageOnHover")) { 66 var selectedImageCategories = Model.Item.GetList("GetAlternativeImageFrom")?.GetRawValue().OfType<string>().ToList(); 67 List<MediaViewModel> allAssetsImages = product.AssetCategories.Where(x => selectedImageCategories.Contains(x.SystemName)).SelectMany(x => x.Assets).ToList(); 68 allAssetsImages.RemoveAll(x => x.Value == product.DefaultImage.Value); 69 alternativeImage = allAssetsImages.FirstOrDefault(); 70 } 71 72 string altImagePathXs = string.Empty; 73 string altImagePathS = string.Empty; 74 75 if (!string.IsNullOrEmpty(alternativeImage?.Value)) 76 { 77 altImagePathXs = "/Admin/Public/GetImage.ashx?width=" + smallImageSize + "&image=" + Dynamicweb.Context.Current.Server.UrlEncode(alternativeImage.Value) + "&format=webp"; 78 altImagePathS = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + Dynamicweb.Context.Current.Server.UrlEncode(alternativeImage.Value) + "&format=webp"; 79 } 80 81 string colorSchemeBorder = !string.IsNullOrWhiteSpace(Model.ColorScheme?.Id) ? "border: 1px solid rgba(0,0,0,0)" : ""; 82 string imageId = "ProductImage_" + product.Id + product.VariantId.Replace(".", "_"); 83 string fullWidth = width == "auto" ? "w-100" : ""; 84 string customWidth = width != "auto" ? "style=\"width: " + width + "px\"" : "style=\"min-width: 60px\""; 85 86 if (!string.IsNullOrEmpty(imagePath)) 87 { 88 <figure class="h-100 @fullWidth position-relative item_@Model.Item.SystemName.ToLower()" @customWidth data-dw-colorscheme="@Model.ColorScheme?.Id"> 89 <div class="ratio" style="@(ratioVariable)"> 90 <div class="d-flex justify-content-center align-items-center"> 91 @if (imagePath.StartsWith("/Files/", StringComparison.OrdinalIgnoreCase)) 92 { 93 <img id="@imageId" 94 srcset=" 95 @imagePathXs @(smallImageSize)w, 96 @imagePathS @(largeImageSize)w" 97 sizes="(max-width: 992px) 50vw, 25vw" 98 src="@imagePathFallBack" 99 @if (Model.Item.GetBoolean("ShowAlternativeImageOnHover") && !string.IsNullOrEmpty(alternativeImage?.Value)) { <text> 100 data-alternative-image=" 101 @altImagePathXs @(smallImageSize)w, 102 @altImagePathS @(largeImageSize)w" 103 onmouseover="swift.Image.swapImage(event)" 104 onmouseout="swift.Image.swapImage(event)" 105 </text> } 106 loading="lazy" 107 decoding="async" 108 class="h-100 w-100" 109 style="object-fit: @ImageObjectFit; @colorSchemeBorder" 110 alt="@product.Name" 111 itemprop="image"> 112 } 113 else 114 { 115 <img id="@imageId" 116 src="/Files/@product.DefaultImage.Value" 117 loading="lazy" 118 class="h-100 w-100" 119 style="object-fit: contain; @colorSchemeBorder" 120 alt="@product.Name" 121 itemprop="image"> 122 } 123 </div> 124 </div> 125 126 @if (!anonymousUser) 127 { 128 if (showFavoritesSelector) 129 { 130 <div class="position-absolute top-0 end-0 my-3" style="z-index: 2"> 131 @RenderPartial("Components/ToggleFavorite.cshtml", product, favoriteParameters) 132 </div> 133 } 134 } 135 </figure> 136 } 137 } 138 else if (Pageview.IsVisualEditorMode) 139 { 140 <div class="alert alert-dark m-0">@Translate("The default image will be shown here, if any")</div> 141 } 142
BJÖRK berøringsfri dispenser til flydende sæbe/desinfektion, hvid
BJÖRK centerrulledispenser, hvid
BJÖRK hygiejnespand, 12 L
BJÖRK affaldsspand, 18 L
BJÖRK toiletpapirholder til 2 standardruller
BJÖRK papirservietdispenser
BJÖRK hygiejnespand, 3 L
Copy of BJÖRK håndtørrer
BJÖRK manuel dispenser til flydende sæbe
Se hygiejneløsninger, der bliver brugt og beundret
Camp adventure
Når naturens farver sætter tonen for designet
Specialtilpassede håndtørrere og sæbedispensere i farvetilpassede nuancer, der matcher det naturlige farveunivers.
Bolia
Når selv håndhygiejne skal afspejle designfilosofien
LOKI dispenser på gulvstander sikrer både håndhygiejnen og designudtrykket.
Nationalcenter Thy
Design, der matcher naturens rå og ærlige udtryk
Björk hygiejneløsninger i stilrent design og i en kvalitet, der står mål med den høje brugsfrekvens.