This could be done a few ways. The non-famo.us approach would be to add surfaces and use Content HTML to create margins. For the sake of the example, I will assume you want a list of surfaces that just need some margin!
I knew about itemSpacing in SequntialLayout, and was surprised to not find such a thing in ScrollView as well. So to solve the problem, I simply added all my surfaces to a SequentialLayout, and then add that as the sole item in Scrollview.
Also note I added a background surface, to capture the mouse events that happen between the surfaces!
Here is what I did.. Hope it helps!
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var Scrollview = require("famous/views/Scrollview");
var SequentialLayout = require("famous/views/SequentialLayout");
var mainContext = Engine.createContext();
var bg = new Surface({ size:[undefined,undefined] });
var scrollview = new Scrollview();
var scrollSurfaces = [];
scrollview.sequenceFrom(scrollSurfaces);
var sequentialLayout = new SequentialLayout({itemSpacing:20});
var surfaces = [];
sequentialLayout.sequenceFrom(surfaces);
for (var i = 0; i < 40; i++) {
var surface = new Surface({
content: "Surface: " + (i + 1),
size: [undefined, 200],
properties: {
backgroundColor: "hsl(" + (i * 360 / 40) + ", 100%, 50%)",
lineHeight: "200px",
textAlign: "center"
}
});
surface.pipe(scrollview);
surfaces.push(surface);
}
scrollSurfaces.push(sequentialLayout);
bg.pipe(scrollview);
mainContext.add(bg);
mainContext.add(scrollview);